Движение спрайта,привязка обьекта к спрайту
| |
overbolt | Дата: Пятница, 02 Января 2015, 14:49 | Сообщение # 1 |
Overbolt's Project
Сейчас нет на сайте
| Всем привет,тут такое дело.У меня есть обьект1,он вырисовывает спрайт,мне нужно чтобы по нажатию клавиш вправо,влево, спрайт перемещался.Еще есть обьект2,мне нужно чтобы он был привязан к координатам спрайта,и при движении спрайта двигался за ним
|
|
| |
LunarPixel | Дата: Пятница, 02 Января 2015, 14:56 | Сообщение # 2 |
старожил
Сейчас нет на сайте
| Если нужно, чтобы двигался только спрайт, при этом объект оставался на месте, то просто заведи вспомогательные переменных новых координат для отрисовки спрайта и изменяй их для смещения.
Код draw_sprite(sprite, 0, x1, y1)
Ну и по нажатию на влево/вправо изменяй переменные, как тебе нужно:
И у объекта2 в EndStep делай привязку к этим координатам:
Код x=object1.x1 y=object2.y2
|
|
| |
overbolt | Дата: Пятница, 02 Января 2015, 17:53 | Сообщение # 3 |
Overbolt's Project
Сейчас нет на сайте
| Спасибо за помощь,но у меня всеравно не получается.Вообщем у меня 3 спрайта,голова,тело и ноги.Но ни один из них не перемещается.Сделал я так.Все это я писал в draw Код x1=288 y1=32 x2=288 y2=58 x3=288 y3=98
if global.head=1 draw_sprite(spr_head1,0,x1,y1) if global.head=2 draw_sprite(spr_head2,0,x1,y1) if global.head=3 draw_sprite(spr_head3,0,x1,y1) if global.head=4 draw_sprite(spr_head4,0,x1,y1) if global.head=5 draw_sprite(spr_head5,0,x1,y1)
if global.body=1 draw_sprite(spr_body1,0,x2,y2) if global.body=2 draw_sprite(spr_body2,0,x2,y2)
if global.legs=1 draw_sprite(spr_legs1,0,x3,y3) if global.legs=2 draw_sprite(spr_legs2,0,x3,y3) if global.legs=3 draw_sprite(spr_legs3,0,x3,y3) if global.legs=4 draw_sprite(spr_legs4,0,x3,y3) if global.legs=5 draw_sprite(spr_legs5,0,x3,y3)
if keyboard_check(ord("D")) x1+=4 x2+=4 x3+=4
Сообщение отредактировал overbolt - Пятница, 02 Января 2015, 17:53 |
|
| |
LunarPixel | Дата: Пятница, 02 Января 2015, 18:10 | Сообщение # 4 |
старожил
Сейчас нет на сайте
| overbolt, объявлять переменные нужно в Create
Код x1=288 y1=32 x2=288 y2=58 x3=288 y3=98
И вот это нужно в фигурные скобки взять {}
|
|
| |
overbolt | Дата: Пятница, 02 Января 2015, 19:41 | Сообщение # 5 |
Overbolt's Project
Сейчас нет на сайте
| Спасибо огромное,выручил Добавлено (02 января 2015, 19:41) --------------------------------------------- Блин,еще возникло затруднение,как сделать прыжок если таким же методом.
|
|
| |
LunarPixel | Дата: Пятница, 02 Января 2015, 19:55 | Сообщение # 6 |
старожил
Сейчас нет на сайте
| overbolt, вообще, лучше немного изменить метод. Я просто изначально не знал, что ты делаешь.
Этот самый объект, который у тебя все отрисовывает, сделай игроком. Назначь ему прямоугольный спрайт, по размерам примерно как твой полностью собранный персонаж и ему все действия пропиши (прыжок, ходьбу, столкновение с объектами и т.д.). Все эти новые переменные с координатами можешь убрать и ориентироваться только на координаты этого объекта. Например, голова может располагаться на таких координатах, относительно этого объекта:
Цитата if global.head=1 draw_sprite(spr_head1,0,x,y-40)
Вместо пишешь просто
Получается, что у тебя есть прямоугольный герой, который бегает, прыгает и т.д. И ты просто не рисуешь этот прямоугольный спрайт, а рисуешь вместо него части тела, но при этом герой остается все тем же прямоугольником, части тела ничего не меняют. Двигаться у тебя будут не просто спрайты, как в твоем текущем коде, а объект с прикрепленными к нему спрайтами.
|
|
| |
overbolt | Дата: Пятница, 02 Января 2015, 20:18 | Сообщение # 7 |
Overbolt's Project
Сейчас нет на сайте
| LunarPixel, хм,а это мысль,спасибо
|
|
| |
|