Проблема с унечтожением объекта
|
|
frai | Дата: Вторник, 14 Мая 2013, 12:39 | Сообщение # 1 |
частый гость
Сейчас нет на сайте
| существует объект который, при столкновении с землёй меняет спрайт после чего он должен уничтожаться. Первые два этапа происходят, а вот с 3 проблемы . Вот пример кода укажите на ошибки пожалуйста.
в create if sprite_index = spr_exp
alarm[0] = 10
в collision sprite_index = spr_exp
в alarm[0] instance_destroy()
|
|
| |
zaicev9797 | Дата: Вторник, 14 Мая 2013, 12:49 | Сообщение # 2 |
AbRaKaDaBrA
Сейчас нет на сайте
| у тебя аларм запускается только при создании обьекта при условии что спрайт будет равен взрыву т.е чтоб он уничтожился нужно чтоб он создался возле стенки и (на стенке) и следовательно поменял спрайт на взрыв и запустил аларм на дестрой
чтоб работало праильно нужно сделать так
криэйт спрайт=спрайт_игрока
в событии столкновения со стеной (или с чем-то другим) спрайт = спрайт_взрыва аларм[0] = длительности взрыва
в событии аларма дестрой
проект Mysterious Space. The losted moment
Сообщение отредактировал zaicev9797 - Вторник, 14 Мая 2013, 12:51 |
|
| |
Глюк | Дата: Вторник, 14 Мая 2013, 12:52 | Сообщение # 3 |
Lampa Studio
Сейчас нет на сайте
| В create:
Nothing
В step: if sprite_index=spr_exp and alarm[0]<1 { alarm[0]=10 };
В collision:
Как у тебя.
В alarm[0]:
Как у тебя.
Мой проект Drunk West! (заморожен) https://gcup.ru/forum/9-99264-1
Мой проект Block Destroyer ( В разработке ) https://gcup.ru/forum/9-102818-1#764778
|
|
| |
zaicev9797 | Дата: Вторник, 14 Мая 2013, 12:55 | Сообщение # 4 |
AbRaKaDaBrA
Сейчас нет на сайте
| Цитата (Глюк) if sprite_index=spr_exp and alarm[0]<1 { alarm[0]=10 }; это для компа намного тяжелее чем мой вариант т.к ему каждый шаг пока существует обьект игрока проверять чему аларм равен и чему спрайт равен
проект Mysterious Space. The losted moment
|
|
| |
Глюк | Дата: Вторник, 14 Мая 2013, 13:09 | Сообщение # 5 |
Lampa Studio
Сейчас нет на сайте
| zaicev9797, Ты думаешь он там супер игру делает, где оптимизация важна?
Мой проект Drunk West! (заморожен) https://gcup.ru/forum/9-99264-1
Мой проект Block Destroyer ( В разработке ) https://gcup.ru/forum/9-102818-1#764778
|
|
| |
zaicev9797 | Дата: Вторник, 14 Мая 2013, 13:14 | Сообщение # 6 |
AbRaKaDaBrA
Сейчас нет на сайте
| у меня это просто уже в привычку вошло просто приятно думать что то что ты делаешь пойдет на ЛЮБОЙ говно-лепешке(я так планшеты и смартфоны зову)
проект Mysterious Space. The losted moment
Сообщение отредактировал zaicev9797 - Вторник, 14 Мая 2013, 13:15 |
|
| |
frai | Дата: Суббота, 18 Мая 2013, 08:52 | Сообщение # 7 |
частый гость
Сейчас нет на сайте
| Не проигрывается скрипт смерти персонажа точнее проигрывается через раз вот пример кода :
if health <= 0 { alarm[3] = 20 sprite_index = spr_death }
причём смена спрайта проигрывается всегда а вот аларм проигрывается через раз. Этот код находится в событии столкновения с объектом, который должен его убить , там же идёт отнимание здоровья.Я пробовал вставлять этот код в степ, но аналогичная проблема .В чём ошибка?
|
|
| |
Abel399 | Дата: Суббота, 18 Мая 2013, 10:45 | Сообщение # 8 |
Surpass your limits. Right now.
Сейчас нет на сайте
| Ошибка в том, что твой персонаж сталкивается с его "смертоносным убийцей" и видимо застревает (событие столкновения проигрывается все время) и из-за этого alarm[3] все время перезаписывается на 20 -> ты никогда не дождешься его выполнения, пока идет столкновение. Какой вариант решения? Ну, первое - это можно действовать по примеру Глюка: Код if (health <= 0) && (alarm[3]<1) { alarm[3] = 20; sprite_index = spr_death; } Второй способ - это сразу перемещать игрока от его "убийцы" (но это неразумно). Третий способ - использовать не alarm, а собственный счетчик времени. Использовать его можно различными способами. Пример: Код //Create: death = 0;
//Step if (death>=20) { //тоже, что и у тебя в alarm'e } if (death>0) { death+=1; }
//Collision with "смертеубийца" if (health <= 0) && (alarm[3]<1) { death+=1; sprite_index = spr_death; }
P.S. А вообще много вариантов исполнения смерти при столкновении Так, что копайся и еще раз копайся. Возможно, найдешь клад =)
Ninja Slayer - 2D Physics Puzzle [cancelled]
Сообщение отредактировал Abel399 - Суббота, 18 Мая 2013, 10:45 |
|
| |