Суббота, 30 Ноября 2024, 06:37

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Отталкивание куба только сверху
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(); //Столкнулись с левой или правой стенкой

А вообще, я просто переделал прошлый пример, который тебе давал) Надеюсь, вопрос правильно понял и помог) Удачи happy


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;
};


В алярме:
Код

room_restart();


Сообщение отредактировал JunkerKun - Пятница, 12 Июля 2013, 15:43
  • Страница 1 из 1
  • 1
Поиск:

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