Воскресенье, 22 Декабря 2024, 18:19

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Прыжок с канатом
Loko™Дата: Пятница, 18 Февраля 2011, 09:25 | Сообщение # 1
постоянный участник
Сейчас нет на сайте
Ситуация:
Игрок нажимает кнопку K, герой кидает крюк с веревкой относительно стороны в которую смотрит (если смотрит вправо - кидает вверх-влево, если влево - вверх-вправо, в общем на угол 45 градусов в лицевую сторону). Крюк цепляется за глыбу (абсолютно любую, будь то Solid или Platform). Затем прокручивается анимация как крюк вонзается в глыбу => герой хватается за канат, описывает радиус, согласно канату, и после совершает прыжок.

Вопрос 1: (пункт 2 в "моих действиях")
При установки set gravity 0 герой все равно медленно, но съезжает вниз. Можно ли сделать так, чтобы он вообще повис в воздухе с канатом (с анимацией прыжок с канатом), или есть ли какая-нибудь этому альтернатива.

Вопрос 2:
Как отследить высоту, с которой падает герой? К примеру если он упал с высоты, большей 500 пикселей - тратит 2 пункта здоровья, если с высоты большей 1000 пикселей - умирает.

Мои действия: (прошу проверить правильность и если возможно - привести альтернативы или что-то сократить данного варианта)

1. Событие: On key pressed K
Действия:
System: Enabled group "climb" (группа, в которой собрана анимация и некоторые действия при прыжке с канатом)
Create object Kanat on layer 1 from Hero (создаю канатом отдельный спрайт, т.к. при использовании встроенного к герою - на твердые предметы канат не действует)

2. Событие: On collisium Kanat and Platform
Действия:
Hero set animation "climbing" (прыжок с канатом)
set gravity to 0 (чтобы герой повис в воздухе и не падал вниз)
Kanat destroy

3. Событие: Hero - animation "climbing" is finished
Действия:
Hero: set gravity to 1500 (чтобы герой не висел в воздухе после завершения анимации)
Hero: set jump gravity to 800 (изначальный прыжок героя не велик и чтобы казалась значимость каната я увеличиваю силу прыжка)
Hero: jump (собственно прыжок после завершения анимации)
delay 1000 ms (жду, чтобы не спала пониженная гравитация от прыжка)
Hero: set jump gravity to 1500;
System: Disable group "climb" (чтобы при случайном соприкосновении с любой платформой герой не взлетал ввысь)



Ghost Quest - 2D платформер в стиле 2D платформеров
[Статья] Создаем 2D платформер а-ля Ghost Quest
[Статья] Реализовываем вис на крюке/платформе


Сообщение отредактировал Loko™ - Пятница, 18 Февраля 2011, 09:46
ImalterДата: Пятница, 18 Февраля 2011, 14:23 | Сообщение # 2
частый гость
Сейчас нет на сайте
Исходник бы:) Я с трудом представляю как все это работает.

Насчет гравитации: Может есть смысл пока играется анимация каната просто привязать героя каждый кадр к определенной точке каната?

Высоту прыжка можно считать так:
В момент отрыва от земли начнает сохраняться координата Y героя (TempY = Hero.Y). Если в каждый кадр новая координата меньше предыдущей, то сохраняем(If Hero.Y < TempY then TempY = Hero.Y). Если нет, то не сохраняем. Так мы получим пиковую высоту прыжка. В момент касания земли сравниваем это сохраненное число с текущей координатой Y героя (FallHeight = Hero.Y-TempY). Получили высоту с которой упал герой.

allxumukДата: Пятница, 18 Февраля 2011, 15:38 | Сообщение # 3
старожил
Сейчас нет на сайте
Вот исходник, демонстрирующий передвижение при помощи каната. За авторством GeorgeThreeD.

Любой дурак может написать программу, которую поймёт компилятор.
Хорошие программисты пишут программы, которые смогут понять другие программисты.
Loko™Дата: Суббота, 19 Февраля 2011, 10:30 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
Imalter, allxumuk, спс, вроде бы работает =)

Еще сразу вопрос: при атаке и наличии перед героем твердого предмета - героя отталкивает назад. Пытаюсь останавливать анимацию через on collisium with another object и еще тремя функциями из этого же раздела - получилось, что если герой стоит после препятствия - анимация останавливается, а если перед - то все равно воспроизводится. Как остановить анимацию при столкновении с твердым объектом?


Ghost Quest - 2D платформер в стиле 2D платформеров
[Статья] Создаем 2D платформер а-ля Ghost Quest
[Статья] Реализовываем вис на крюке/платформе
Don_VitoДата: Воскресенье, 20 Февраля 2011, 10:02 | Сообщение # 5
3D Rad Guru
Сейчас нет на сайте
Спасибо за демку. Взялся недавно за изучение конструктора. Очень пригодился этот пример.

Статьи по 3D Rad:
Моя первая статья.
Вторая статья.
Третья статья.
Четвертая статья.
  • Страница 1 из 1
  • 1
Поиск:

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