Ответ: PlayCanvas
Прыгать вперед не реально, за боксом не видно ничего.
|
Ответ: PlayCanvas
Прикольно.
Только не видно низ игрока, и он загораживает за ним то что находится, следственно сложно узнать когда нужно прыгнуть. Ну и скорость нужно быстрее конечно =) |
Ответ: PlayCanvas
* Скорость будет равна темпу играемого трека
* Моделька будет уже трека, и можно будет наверное немного по нему смещаться * Автогенерации не будет - пресеты Посетуйте как адекватно сделать прыжки, а то сейчас при лагах можно не долететь и т.д, всему виной dt и raycast, который возвращает значение в калбеке, который выполняется хрен знает когда, да и срабатывает только если есть объект. moka, нужен raycast, который будет работать в момент вызова, я так понял, что в API такого нет и придется самому реализовать. AaBb у объекта - это что? Стыретд фром: |
Ответ: PlayCanvas
aabb - Это по сути прямоугольник у которого грани паралельны осям координатной системы, и объем включает в себя всю модель. https://en.wikipedia.org/wiki/Bounding_volume
Используется чтобы проще было проверить на пересечение объемов или там объем<>фруструм. Вообще я бы на твоем месте никакую физику не использовал бы. У тебя простая логика полосок и нескольк дорог. В 2д проверить если ты на полоске или нет очень просто. Вся игровая логика ничего общего с рендером не должна иметь. Тогда и физика не нужна, и рейкасты никакие. И проще будет менять визуальный стиль. |
Ответ: PlayCanvas
Да я хотел так сделать, но смутило что нужно пробегать весь массив объектов и сравнивать положения + размер с положением + размером игрока. + z уровень, если проверять сверху.
|
Ответ: PlayCanvas
Массив можно отсортировать, например, по направлению вдоль взгляда - и с помощью бинарного поиска выбрать только те препятствия, которые пересекаются вдоль неё с игроком - им понадобится проверка по остальным осям. (O(logN) vs O(N)). Ещё можно размер игрока (aabb), прибавить ко всем препятствиям и считать игрока точкой.
P.S. А можно ещё проще - запоминать количество пройденных элементов - и проверять прохождение мимо следующего. |
Ответ: PlayCanvas
А виртуальный таймлайн с тремя треками как во флеше нельзя придумать? У каждой дорожки положение + длина. Дорожки по таймлайну отсортированы в порядке появления. В любой момент времени для проверки доступны всего три дороги, которые еще не прошел или до которых не дошел. Которые прошел сразу исключаются из обсчета.
Проверка такая: если твое положение меньше начала дороги - упал. Как только дорога кончается, обсчет переключается на следующую и в следующем апдейте сработает обсчет новой дороги и автоматически упадешь, т.е. всего одна проверка текущей дороги. И таких проверок три. Плюс три проверки на завершение дороги и переключении на следующую. Какие AABB то? Здесь они вообще не нужны. Размер игрока тоже легко имитируется. |
Ответ: PlayCanvas
Можно все, главное что бы работало нормально и overhead большим не был.
P.S. Это не флеш на скрине. Это Rauman 3, один из уровней. Треков не обязательно 3. Не обязательно ровные, хотя это не меняет логики |
Ответ: PlayCanvas
Редактор таймлайна флеша я привел как наглядный пример. Тоже самое например во всяких редакторах звуков и музыки.
Игрок находится на линии проигрывания: |
Ответ: PlayCanvas
Аа, я не понял, так как не пользовался.
Я хочу сделать так: 1.Сортируем массив дорожек по положению начала 2. В Update проходим циклом от дорожки с индексом start до первой дорожки, у которой позиция больше позиции игрока. 3. после прохода дорожки start+1 - смещаем начальный индекс, так как дорожка позади и она нам не нужна. Про чекпоинты: хранить в них текущий индекс дорожки и присваивать его start, что бы не проходить массив сначала до позиции игрока. |
Ответ: PlayCanvas
|
Ответ: PlayCanvas
Цитата:
|
Ответ: PlayCanvas
Цитата:
|
Ответ: PlayCanvas
http://playcanv.as/p/hgd8lBvU
Обновил. Отключил физику, теперь тупо математика. Не смог правда пока разобраться с начальной границей перебора, вышли небольшие сложности с пунктом 3. Осталось нормально описать прыжки, а то у меня коэффициенты скоростей вертикальных и горизонтальных вручную подобраны, из-за этого можно промахнутся и всякие подобные недочеты. Подскажите как правильней сделать? |
Ответ: PlayCanvas
ну, добавить параметры - время прыжка t, ускорение свободного падения g и расстояние между дорожками l.
Тогда горизонтальная скорость vx =l/t, вертикальная vy = g*t/2. В принципе, позицию можно описать как функцию от времени и вообще не думать о скоростях. Моделька в момент приземления как-то резко дёргается - приземляется раньше, чем должно быть с точки зрения смотрящего на полёт игрока. |
Часовой пояс GMT +4, время: 07:01. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot