Четверг, 21 Ноября 2024, 23:21

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Движение спрайта,привязка обьекта к спрайту
overboltДата: Пятница, 02 Января 2015, 14:49 | Сообщение # 1
Overbolt's Project
Сейчас нет на сайте
Всем привет,тут такое дело.У меня есть обьект1,он вырисовывает спрайт,мне нужно чтобы по нажатию клавиш вправо,влево, спрайт перемещался.Еще есть обьект2,мне нужно чтобы он был привязан к координатам спрайта,и при движении спрайта двигался за ним
LunarPixelДата: Пятница, 02 Января 2015, 14:56 | Сообщение # 2
старожил
Сейчас нет на сайте
Если нужно, чтобы двигался только спрайт, при этом объект оставался на месте, то просто заведи вспомогательные переменных новых координат для отрисовки спрайта и изменяй их для смещения.

Код
x1=0
y1=0


Код
draw_sprite(sprite, 0, x1, y1)


Ну и по нажатию на влево/вправо изменяй переменные, как тебе нужно:
Код
x1+=4


И у объекта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


И вот это
Код
x1+=4  
x2+=4  
x3+=4

нужно в фигурные скобки взять {}


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)


Вместо
Код
x1+=4  
x2+=4  
x3+=4

пишешь просто
Код
x+=4


Получается, что у тебя есть прямоугольный герой, который бегает, прыгает и т.д. И ты просто не рисуешь этот прямоугольный спрайт, а рисуешь вместо него части тела, но при этом герой остается все тем же прямоугольником, части тела ничего не меняют. Двигаться у тебя будут не просто спрайты, как в твоем текущем коде, а объект с прикрепленными к нему спрайтами.


overboltДата: Пятница, 02 Января 2015, 20:18 | Сообщение # 7
Overbolt's Project
Сейчас нет на сайте
LunarPixel, хм,а это мысль,спасибо
  • Страница 1 из 1
  • 1
Поиск:

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