Пятница, 08 Ноября 2024, 18:04

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Коллизия курсора и спрайта
MrForestДата: Четверг, 01 Февраля 2018, 12:53 | Сообщение # 1
частый гость
Сейчас нет на сайте
Как проверить коллизию курсора со спрайтом, при том, что каждую секунду у него изменяется image_yscale и угол поворота?

При нажатии ПКМ по персонажу из него тянется полоска за мышью, которая должна останавливаться как только дойдет до курсора. Но эта полоска реализована спрайтом, у которого постоянно изменяется image_yscale и угол поворота. Из-за этого возникли трудности с определением коллизии.

Отрисовываю полоску следующим образом:

Код
alpha = point_direction(x,y,mouse_x,mouse_y)+90;
if pressedMouse{
draw_sprite_ext(s_arrow,-1,x,y,1,-yscale_arrow,alpha,c_white,1)
}


В степе я прибавляю к yscale_arrow определенное значение, но мне нужно перестать это делать как только спрайт коснется курсора и тем самым остановить движение полоски (перестать изменять image_yscale). Пробовал делать через point_in_rectangle, но тогда полоска останавливается только тогда, когда навожу курсор на как бы оригинальный спрайт (то есть измененное значение image_yscale не учитывается).
ДанилаСтержневДата: Четверг, 01 Февраля 2018, 19:46 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
Может скринов?

Красочная сюжетно ориентированная игра-головоломка
SkrininshotДата: Пятница, 02 Февраля 2018, 16:38 | Сообщение # 3
частый гость
Сейчас нет на сайте
Не профессионал, но думаю, что могу навести на мысль. Можно сделать объект, который всегда следует за мышью, потом проверять столкновение полоски с ним.

What is love
Baby don't hurt me
Don't hurt me
No more...
FirowДата: Понедельник, 05 Февраля 2018, 17:26 | Сообщение # 4
был не раз
Сейчас нет на сайте
Код

if mouse_x >= object_x and mouse_x <= object_x + object_w and mouse_y >= object_y and mouse_y <= object_y + object_yh {
   //execute code
}


Добавлено (05 Февраля 2018, 17:26)
---------------------------------------------
Можно создать объектом со спрайтом 1х1 и этой же маской, и так проверять столкновение, если тебе, конечно, нужно точное столкновение. В таком случае добавь в begin step, step, end step
Код

x = mouse_x
y = mouse_y


Ваще пофиг

Сообщение отредактировал Firow - Понедельник, 05 Февраля 2018, 17:33
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг