Среда, 13 Ноября 2024, 10:02

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
вычисление столкновения
LgunchikДата: Пятница, 12 Марта 2010, 14:59 | Сообщение # 1
постоянный участник
Сейчас нет на сайте
у меня появилась проблема, всё ни как не могу сделать определение столкновение(платформер). Когда главный герой падает на объект(обычный квадрат, пол, стены) как на пол то он ходит , прыгает , кароче может всё. Когда гг касается потолка он касается его , скорость = 0 и он падает. Когда гг герой касаится к боксу как к стене то просто гг не может проити через неё.

>
SpihexДата: Пятница, 12 Марта 2010, 15:19 | Сообщение # 2
Моргающий Гемо-Брат
Сейчас нет на сайте
Не совсем понятно, что же Вам нужно.
Посмотрите на официальном сайте, там должен быть урок в категории "официальные уроки". Называется "GM Tutorial - Platform Games" или "Platformer Example"
LgunchikДата: Пятница, 12 Марта 2010, 15:34 | Сообщение # 3
постоянный участник
Сейчас нет на сайте
моя проблема в краце:
1.по полу бегает норм
2.застревает в стенах
3.и повисает на полке


>
soaupДата: Пятница, 12 Марта 2010, 15:39 | Сообщение # 4
участник
Сейчас нет на сайте
Ты не делал чтобы при соприкосновении со стеной скорость игрока падала до 0?
SpihexДата: Пятница, 12 Марта 2010, 15:42 | Сообщение # 5
Моргающий Гемо-Брат
Сейчас нет на сайте
Вариант 1:
Стены, пол, потолок сделать тремя разными объектами. Следовательно, получим три разных столкновения и поведения.

Вариант 2:
Проверять с какой стороны происходит столкновение с объектом, если объект один.

LgunchikДата: Пятница, 12 Марта 2010, 15:52 | Сообщение # 6
постоянный участник
Сейчас нет на сайте
объект один, вот я и не знаю как проверять с какой стороны гг прикоснулся

>
SpihexДата: Пятница, 12 Марта 2010, 17:42 | Сообщение # 7
Моргающий Гемо-Брат
Сейчас нет на сайте
Идем дальше. Если познания в GML не очень, то делаем три разных объекта и описываем три разных столкновения.
Если есть знания, то делаем нечто похожее:

У каждого объекта есть такие свойства: bbox_bottom, bbox_right, bbox_top, bbox_left.
Это нижняя, правая, верхняя, левая границы спрайта объекта, по которым и проверяют столкновения(не всегда столкновение проверяется по спрайту)
А код, должен быть примерно следующим(поместить в событие "шаг"/"step"):

Code

if collision_point(wall.x,wall.bbox_top,wall,1,0)
// здесь проверяем столкновение с верхней границей. т.е. относительно ГГ это пол


Сообщение отредактировал Spihex - Пятница, 12 Марта 2010, 17:43
  • Страница 1 из 1
  • 1
Поиск:

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