DSIYS
Новичок
Репутация: 0
Offline
API: GameMaker Studio 2
Сообщений: 14
|
 |
« : Ноябрь 29, 2020, 12:31:47 » |
|
Возникла проблема с реализацией оружия:выстрел происходит из "точки крепления". Ещё бы хотелось узнать, как сделать поворот(отражение) спрайта при определенном повороте мыши. P.s. Жанр не совсем TDS, просто кроме платформеров и TDS тут ничего нет. Оружие: Global left down if (mouse_check_button(mb_left)) { sprite_index= MushketAtack; image_speed=1.5; } if cd=1{ instance_create_depth(x,y,-1,Obj_Bu); alarm[0]= shooting_speed; cd=0; }
End step x=Obj_Player.x+10; y=Obj_Player.y;
|
|
« Последнее редактирование: Ноябрь 29, 2020, 12:37:57 от DSIYS »
|
Записан
|
|
|
|
AndrewVideoGames
Главный Модератор
Репутация: 821
Offline
Пол:  Награды: ![За постоянность! [500 дней на форуме] За постоянность! [500 дней на форуме]](https://forum.hellroom.ru/awards/e0371460a203dd46d2dc161571bf6144_hellroomforum_time_gold.gif) ![За лояльность! [+750 репутации] За лояльность! [+750 репутации]](https://forum.hellroom.ru/awards/ba712f70231a68b216c525b7e8eca694_hellroomforum_good_silver.gif)  
API: GameMaker Studio Pro
Деятельность: А я кто? А я руководитель!
Сообщений: 7316
|
 |
« Ответ #1 : Ноябрь 29, 2020, 13:10:00 » |
|
Используйте lengthdir_x и lengthdir_y – прибавляйте их к координатам при создании пули, первым аргументом (длина) будет расстояние от центра до дула, а вторым (направление) угол направления от центра до дула.
|
|
|
Записан
|
|
|
|
DSIYS
Новичок
Репутация: 0
Offline
API: GameMaker Studio 2
Сообщений: 14
|
 |
« Ответ #2 : Ноябрь 29, 2020, 15:06:19 » |
|
Используйте lengthdir_x и lengthdir_y – прибавляйте их к координатам при создании пули, первым аргументом (длина) будет расстояние от центра до дула, а вторым (направление) угол направления от центра до дула.
Благодарю,поискал информацию по lengthdir_x и lengthdir_y и нашёл решение. А что на счёт отражения спрайта? К примеру, я поворачиваю мушкет назад и по идее, он должен перевернутся по оси x. Как можно сделать так, чтобы он с определённого угла зеркально отражался?
|
|
|
Записан
|
|
|
|
AndrewVideoGames
Главный Модератор
Репутация: 821
Offline
Пол:  Награды: ![За постоянность! [500 дней на форуме] За постоянность! [500 дней на форуме]](https://forum.hellroom.ru/awards/e0371460a203dd46d2dc161571bf6144_hellroomforum_time_gold.gif) ![За лояльность! [+750 репутации] За лояльность! [+750 репутации]](https://forum.hellroom.ru/awards/ba712f70231a68b216c525b7e8eca694_hellroomforum_good_silver.gif)  
API: GameMaker Studio Pro
Деятельность: А я кто? А я руководитель!
Сообщений: 7316
|
 |
« Ответ #3 : Ноябрь 29, 2020, 18:38:49 » |
|
Как можно сделать так, чтобы он с определённого угла зеркально отражался?
Пока что я не очень понял что имеется ввиду в отражении с определённого угла, но используйте image_xscale (1 обычное состояние, -1 отраженное по горизонтали) и image_yscale (1 обычное состояние, -1 отраженное по вертикали).
|
|
|
Записан
|
|
|
|
DSIYS
Новичок
Репутация: 0
Offline
API: GameMaker Studio 2
Сообщений: 14
|
 |
« Ответ #4 : Ноябрь 30, 2020, 20:08:19 » |
|
Как можно сделать так, чтобы он с определённого угла зеркально отражался?
Пока что я не очень понял что имеется ввиду в отражении с определённого угла, но используйте image_xscale (1 обычное состояние, -1 отраженное по горизонтали) и image_yscale (1 обычное состояние, -1 отраженное по вертикали). Вот моя проблема (извиняюсь за качество). Мне нужно, чтобы пушка при этом положении перевернулась. Пушка следит за мышкой.
|
 Стрельба из дула оружия
qQ53g8cJSag.jpg (131.71 Кб, 1049x1080 - просмотрено 317 раз.)
|
« Последнее редактирование: Ноябрь 30, 2020, 20:17:37 от DSIYS »
|
Записан
|
|
|
|
AndrewVideoGames
Главный Модератор
Репутация: 821
Offline
Пол:  Награды: ![За постоянность! [500 дней на форуме] За постоянность! [500 дней на форуме]](https://forum.hellroom.ru/awards/e0371460a203dd46d2dc161571bf6144_hellroomforum_time_gold.gif) ![За лояльность! [+750 репутации] За лояльность! [+750 репутации]](https://forum.hellroom.ru/awards/ba712f70231a68b216c525b7e8eca694_hellroomforum_good_silver.gif)  
API: GameMaker Studio Pro
Деятельность: А я кто? А я руководитель!
Сообщений: 7316
|
 |
« Ответ #5 : Декабрь 01, 2020, 09:44:12 » |
|
Повернулась по каким направлениям? Вправо/влево и Вверх/Вниз? Или больше?
|
|
|
Записан
|
|
|
|
DSIYS
Новичок
Репутация: 0
Offline
API: GameMaker Studio 2
Сообщений: 14
|
 |
« Ответ #6 : Декабрь 01, 2020, 11:23:40 » |
|
Повернулась по каким направлениям? Вправо/влево и Вверх/Вниз? Или больше?
Если разделить картинку, что я прислал на 2 части по вертикали, то в правой половине мушкет будет смотреть в право, а в левой стороне он должен отразиться по оси x. т.е если спрайт заходит на левую половину (-x) то он должен зеркально отразиться
|
|
|
Записан
|
|
|
|
AndrewVideoGames
Главный Модератор
Репутация: 821
Offline
Пол:  Награды: ![За постоянность! [500 дней на форуме] За постоянность! [500 дней на форуме]](https://forum.hellroom.ru/awards/e0371460a203dd46d2dc161571bf6144_hellroomforum_time_gold.gif) ![За лояльность! [+750 репутации] За лояльность! [+750 репутации]](https://forum.hellroom.ru/awards/ba712f70231a68b216c525b7e8eca694_hellroomforum_good_silver.gif)  
API: GameMaker Studio Pro
Деятельность: А я кто? А я руководитель!
Сообщений: 7316
|
 |
« Ответ #7 : Декабрь 01, 2020, 13:14:38 » |
|
Повернулась по каким направлениям? Вправо/влево и Вверх/Вниз? Или больше?
Если разделить картинку, что я прислал на 2 части по вертикали, то в правой половине мушкет будет смотреть в право, а в левой стороне он должен отразиться по оси x. т.е если спрайт заходит на левую половину (-x) то он должен зеркально отразиться image_xscale = sign(mouse_x - x); // если спрайт изначально повёрнут вправо, если влево, то sign(x - mouse_x)
|
|
|
Записан
|
|
|
|
DSIYS
Новичок
Репутация: 0
Offline
API: GameMaker Studio 2
Сообщений: 14
|
 |
« Ответ #8 : Декабрь 01, 2020, 18:07:17 » |
|
Теперь, когда я поворачиваю оружие в лево, оно не следит за мышью, а переворачивается.
|
|
|
Записан
|
|
|
|
AndrewVideoGames
Главный Модератор
Репутация: 821
Offline
Пол:  Награды: ![За постоянность! [500 дней на форуме] За постоянность! [500 дней на форуме]](https://forum.hellroom.ru/awards/e0371460a203dd46d2dc161571bf6144_hellroomforum_time_gold.gif) ![За лояльность! [+750 репутации] За лояльность! [+750 репутации]](https://forum.hellroom.ru/awards/ba712f70231a68b216c525b7e8eca694_hellroomforum_good_silver.gif)  
API: GameMaker Studio Pro
Деятельность: А я кто? А я руководитель!
Сообщений: 7316
|
 |
« Ответ #9 : Декабрь 01, 2020, 18:14:10 » |
|
Теперь, когда я поворачиваю оружие в лево, оно не следит за мышью, а переворачивается.
Сформулируйте что вам нужно точнее. Кроме отражения и поворота направления я не представляю что можно сделать с оружием.
|
|
|
Записан
|
|
|
|
DSIYS
Новичок
Репутация: 0
Offline
API: GameMaker Studio 2
Сообщений: 14
|
 |
« Ответ #10 : Декабрь 01, 2020, 19:25:29 » |
|
Если честно, не знаю как описать ещё точнее. Дуло оружия следит за мышью по этому коду: image_angle=point_direction(x,y,mouse_x,mouse_y); Когда оружие поворачивается назад, то есть в левую сторону, то получается, что оно перевёрнуто(см. картинка 1). По этому коду, который вы мне скинули, оружие, когда я перевожу мышь в левую часть, оружие,а точнее его спрайт перестаёт следить за курсором и просто отражается зеркально (см. картинка 2 и 3). image_xscale = sign(mouse_x - x); Я бы хотел сделать так, чтобы при повороте влево спрайт и следил за мышкой, и был перевёрнут.
|
 Стрельба из дула оружия
1.png (6.9 Кб, 1366x768 - просмотрено 281 раз.)
 Стрельба из дула оружия
2.png (6.73 Кб, 1366x768 - просмотрено 289 раз.)
 Стрельба из дула оружия
3.png (6.83 Кб, 1366x768 - просмотрено 283 раз.)
|
|
Записан
|
|
|
|
AndrewVideoGames
Главный Модератор
Репутация: 821
Offline
Пол:  Награды: ![За постоянность! [500 дней на форуме] За постоянность! [500 дней на форуме]](https://forum.hellroom.ru/awards/e0371460a203dd46d2dc161571bf6144_hellroomforum_time_gold.gif) ![За лояльность! [+750 репутации] За лояльность! [+750 репутации]](https://forum.hellroom.ru/awards/ba712f70231a68b216c525b7e8eca694_hellroomforum_good_silver.gif)  
API: GameMaker Studio Pro
Деятельность: А я кто? А я руководитель!
Сообщений: 7316
|
 |
« Ответ #11 : Декабрь 01, 2020, 20:20:31 » |
|
Работает без проблем (только поворачивать не по горизонтали, а по вертикали же нужно оружие): var gunX = x; var gunY = y; var gunAngle = point_direction(mouse_x, mouse_y, gunX, gunY); var gunScale = sign(gunX - mouse_x); draw_sprite_ext(sGun, 0, gunX, gunY, 1, gunScale, gunAngle, c_white, 1);
|
|
|
Записан
|
|
|
|
DSIYS
Новичок
Репутация: 0
Offline
API: GameMaker Studio 2
Сообщений: 14
|
 |
« Ответ #12 : Декабрь 01, 2020, 21:47:56 » |
|
Работает без проблем (только поворачивать не по горизонтали, а по вертикали же нужно оружие): var gunX = x; var gunY = y; var gunAngle = point_direction(mouse_x, mouse_y, gunX, gunY); var gunScale = sign(gunX - mouse_x); draw_sprite_ext(sGun, 0, gunX, gunY, 1, gunScale, gunAngle, c_white, 1);
Не получается. Скорее всего, чтобы это работало, я изначально должен был сделать всё по умному. Быть новичком в любой сфере не просто. Я скину проект во вложении в rar файле, если будет время и желание, может вы найдёте, в чём проблема.
|
|
|
Записан
|
|
|
|
AndrewVideoGames
Главный Модератор
Репутация: 821
Offline
Пол:  Награды: ![За постоянность! [500 дней на форуме] За постоянность! [500 дней на форуме]](https://forum.hellroom.ru/awards/e0371460a203dd46d2dc161571bf6144_hellroomforum_time_gold.gif) ![За лояльность! [+750 репутации] За лояльность! [+750 репутации]](https://forum.hellroom.ru/awards/ba712f70231a68b216c525b7e8eca694_hellroomforum_good_silver.gif)  
API: GameMaker Studio Pro
Деятельность: А я кто? А я руководитель!
Сообщений: 7316
|
 |
« Ответ #13 : Декабрь 01, 2020, 23:51:46 » |
|
Экспортируйте проект через File -> Export
|
|
|
Записан
|
|
|
|
DSIYS
Новичок
Репутация: 0
Offline
API: GameMaker Studio 2
Сообщений: 14
|
 |
« Ответ #14 : Декабрь 01, 2020, 23:56:48 » |
|
Экспортируйте проект через File -> Export
|
|
|
Записан
|
|
|
|
|