Отталкивание куба только сверху
| |
valeranagato | Дата: Четверг, 11 Июля 2013, 22:37 | Сообщение # 1 |
участник
Сейчас нет на сайте
| Привет снова. Опять вопрос появился.
Как реализовать так чтобы куб мог отталкиваться только сверху, а слева, справа, и снизу допустим рестартился room. Только не "if (vspeed>0) else room_restart , на этом не то.
Mini Maku Cube 2: New Worlds
Шары, кубы, Нагато, дальше треугольники, да-да?
Сообщение отредактировал valeranagato - Четверг, 11 Июля 2013, 22:39 |
|
| |
JunkerKun | Дата: Пятница, 12 Июля 2013, 03:34 | Сообщение # 2 |
частый гость
Сейчас нет на сайте
| Не совсем понял, но полагаю, имеется в виду, что стоять кубик может лишь на верхней части платформы? Если да, то можно использовать if (place_meeting(x,y+1,objPlatform)) у куба или if (place_meeting(x,y-1,objCube)) у платформ. Лучше, конечно, у куба.
Сообщение отредактировал JunkerKun - Пятница, 12 Июля 2013, 03:34 |
|
| |
Abel399 | Дата: Пятница, 12 Июля 2013, 06:01 | Сообщение # 3 |
Surpass your limits. Right now.
Сейчас нет на сайте
| Кое-как, но я понял) Ты имеешь ввиду - если куб имеет столкновение слева или справа, то комната рестартится... А если стоит твердо на платформе, то спокойно может от неё отпрыгнуть. Вроде понял правильно) Для этого проверяй столкновение в степе куба или непосредственно во время столкновения с платформой. То есть если объект твердый, то используй place_free(x,y), а еще лучше place_meeting(x,y,obj). То есть, в столкновение куба с платформой можно написать так: Код if (place_meeting(x+1,y,other)) or (place_meeting(x-1,y,other)) room_restart(); //Столкнулись с левой или правой стенкой А вообще, я просто переделал прошлый пример, который тебе давал) Надеюсь, вопрос правильно понял и помог) Удачи
Ninja Slayer - 2D Physics Puzzle [cancelled]
|
|
| |
valeranagato | Дата: Пятница, 12 Июля 2013, 11:40 | Сообщение # 4 |
участник
Сейчас нет на сайте
| Abel399, блин капец. Ты просто мои мечты исполняешь О_О спасибо тебе огромнейщее!
одно ещё спрошу так как ты мне хорошо подсказал.
Как тогда сделать не Room Restart, а знаешь как, чтобы когда куб сталкивался слева, справа или снизу то он будто на мелкие части разлетался и через секунды 2 рестартился рум. Вот если поможешь с этим я не знаю) ты просто будешь богом)
В этом я просто не понимаю, нужно рисовать сприт точно, а как сделать чтобы он поменял его , удалился после, и через 2 секунду рестартился рум я не знаю.. Спасибо вообще-то тебе огромное что помагаешь мне) у тебя это лучше всех выходит)
Mini Maku Cube 2: New Worlds
Шары, кубы, Нагато, дальше треугольники, да-да?
|
|
| |
JunkerKun | Дата: Пятница, 12 Июля 2013, 15:42 | Сообщение # 5 |
частый гость
Сейчас нет на сайте
| Цитата (valeranagato) Как тогда сделать не Room Restart, а знаешь как, чтобы когда куб сталкивался слева, справа или снизу то он будто на мелкие части разлетался и через секунды 2 рестартился рум.
Есть два способа. Первый использовать частицы или перерисовывать спрайт. Первый способ:
-При столкновении чуть-чуть отодвигаем игрока назад, чтобы событие столкновения больше не срабатывало (x=xprevious), блокируем управление. -Меняем ему спрайт (sprite_index = название спрайта) -Запускаем таймер на 2 -В событии таймера пишем room_restart();
Второй способ: -При столкновении чуть-чуть отодвигаем игрока назад, чтобы событие столкновения больше не срабатывало (x=xprevious), блокируем управление. -Создаем кучу объектов, падающих вниз, со спрайтом кубиков помельче, делаем объект игрока невидимым. -Запускаем таймер на 2 -В событии таймера пишем room_restart();
В обоих случаях первые пункты можно заменить на использование флажка, к примеру if (PlayerDead) {проверка столкновений}
Как-то так: Код if (place_meeting(x+1,y,objPlatform) || place_meeting(x-1,y,objPlatform)) { x=xprevious; sprite_index =deadSprite; alarm[0]=2; };
В алярме:
Сообщение отредактировал JunkerKun - Пятница, 12 Июля 2013, 15:43 |
|
| |
|