![](images/chestnut/misc/left.gif) |
JavaScript / HTML Создание динамической разметки страниц |
18.06.2015, 18:08
|
#61
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: PlayCanvas
Прыгать вперед не реально, за боксом не видно ничего.
|
(Offline)
|
|
18.06.2015, 19:28
|
#62
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: PlayCanvas
Прикольно.
Только не видно низ игрока, и он загораживает за ним то что находится, следственно сложно узнать когда нужно прыгнуть.
Ну и скорость нужно быстрее конечно =)
|
(Offline)
|
|
20.06.2015, 22:29
|
#63
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: PlayCanvas
* Скорость будет равна темпу играемого трека
* Моделька будет уже трека, и можно будет наверное немного по нему смещаться
* Автогенерации не будет - пресеты
Посетуйте как адекватно сделать прыжки, а то сейчас при лагах можно не долететь и т.д, всему виной dt и raycast, который возвращает значение в калбеке, который выполняется хрен знает когда, да и срабатывает только если есть объект.
moka, нужен raycast, который будет работать в момент вызова, я так понял, что в API такого нет и придется самому реализовать. AaBb у объекта - это что?
Стыретд фром:
![](http://ftg.operationsupplydrop.org/wp-content/uploads/2012/07/rayman3-002.jpg)
Последний раз редактировалось RegIon, 21.06.2015 в 00:18.
|
(Offline)
|
|
21.06.2015, 17:43
|
#64
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: PlayCanvas
aabb - Это по сути прямоугольник у которого грани паралельны осям координатной системы, и объем включает в себя всю модель. https://en.wikipedia.org/wiki/Bounding_volume
Используется чтобы проще было проверить на пересечение объемов или там объем<>фруструм.
Вообще я бы на твоем месте никакую физику не использовал бы.
У тебя простая логика полосок и нескольк дорог. В 2д проверить если ты на полоске или нет очень просто.
Вся игровая логика ничего общего с рендером не должна иметь.
Тогда и физика не нужна, и рейкасты никакие. И проще будет менять визуальный стиль.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
21.06.2015, 22:30
|
#65
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: PlayCanvas
Да я хотел так сделать, но смутило что нужно пробегать весь массив объектов и сравнивать положения + размер с положением + размером игрока. + z уровень, если проверять сверху.
|
(Offline)
|
|
22.06.2015, 01:15
|
#66
|
Мастер
Регистрация: 03.05.2010
Адрес: Подмосковье
Сообщений: 1,218
Написано 438 полезных сообщений (для 790 пользователей)
|
Ответ: PlayCanvas
Массив можно отсортировать, например, по направлению вдоль взгляда - и с помощью бинарного поиска выбрать только те препятствия, которые пересекаются вдоль неё с игроком - им понадобится проверка по остальным осям. (O(logN) vs O(N)). Ещё можно размер игрока (aabb), прибавить ко всем препятствиям и считать игрока точкой.
P.S. А можно ещё проще - запоминать количество пройденных элементов - и проверять прохождение мимо следующего.
__________________
О¯О ¡¡¡ʁɔvʎнdǝʚǝdǝu dиW
|
(Offline)
|
|
22.06.2015, 07:57
|
#67
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: PlayCanvas
А виртуальный таймлайн с тремя треками как во флеше нельзя придумать? У каждой дорожки положение + длина. Дорожки по таймлайну отсортированы в порядке появления. В любой момент времени для проверки доступны всего три дороги, которые еще не прошел или до которых не дошел. Которые прошел сразу исключаются из обсчета.
Проверка такая: если твое положение меньше начала дороги - упал. Как только дорога кончается, обсчет переключается на следующую и в следующем апдейте сработает обсчет новой дороги и автоматически упадешь, т.е. всего одна проверка текущей дороги. И таких проверок три. Плюс три проверки на завершение дороги и переключении на следующую. Какие AABB то? Здесь они вообще не нужны. Размер игрока тоже легко имитируется.
|
(Offline)
|
|
22.06.2015, 08:52
|
#68
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: PlayCanvas
Можно все, главное что бы работало нормально и overhead большим не был.
P.S.
Это не флеш на скрине. Это Rauman 3, один из уровней.
Треков не обязательно 3. Не обязательно ровные, хотя это не меняет логики
|
(Offline)
|
|
22.06.2015, 09:09
|
#69
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: PlayCanvas
Редактор таймлайна флеша я привел как наглядный пример. Тоже самое например во всяких редакторах звуков и музыки.
Игрок находится на линии проигрывания:
![](http://dt7v1i9vyp3mf.cloudfront.net/styles/news_large/s3/imagelibrary/C/Cubase-01-1213.jpg)
|
(Offline)
|
|
22.06.2015, 09:39
|
#70
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: PlayCanvas
Аа, я не понял, так как не пользовался.
Я хочу сделать так:
1.Сортируем массив дорожек по положению начала
2. В Update проходим циклом от дорожки с индексом start до первой дорожки, у которой позиция больше позиции игрока.
3. после прохода дорожки start+1 - смещаем начальный индекс, так как дорожка позади и она нам не нужна.
Про чекпоинты: хранить в них текущий индекс дорожки и присваивать его start, что бы не проходить массив сначала до позиции игрока.
|
(Offline)
|
|
22.06.2015, 11:55
|
#71
|
Элита
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений (для 2,828 пользователей)
|
Ответ: PlayCanvas
Сообщение от RegIon
Стыретд фром:
![](http://ftg.operationsupplydrop.org/wp-content/uploads/2012/07/rayman3-002.jpg)
|
Ты делаешь аналог AudioSurf?
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.
Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2
Скачать Doom 2D: Remake v0.3.8a
|
(Offline)
|
|
22.06.2015, 14:28
|
#72
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: PlayCanvas
Сообщение от RegIon
Я хочу сделать так:
1.Сортируем массив дорожек по положению начала
2. В Update проходим циклом от дорожки с индексом start до первой дорожки, у которой позиция больше позиции игрока.
3. после прохода дорожки start+1 - смещаем начальный индекс, так как дорожка позади и она нам не нужна.
Про чекпоинты: хранить в них текущий индекс дорожки и присваивать его start, что бы не проходить массив сначала до позиции игрока.
|
Звучит хорошо. Главное сделай все это без завязки на рендере и физики.
|
(Offline)
|
|
22.06.2015, 17:15
|
#73
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: PlayCanvas
Сообщение от St_AnGer
Ты делаешь аналог AudioSurf?
|
Да, но без автогенерации, так как будет убого.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
25.06.2015, 15:19
|
#74
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: PlayCanvas
http://playcanv.as/p/hgd8lBvU
Обновил. Отключил физику, теперь тупо математика.
Не смог правда пока разобраться с начальной границей перебора, вышли небольшие сложности с пунктом 3.
Осталось нормально описать прыжки, а то у меня коэффициенты скоростей вертикальных и горизонтальных вручную подобраны, из-за этого можно промахнутся и всякие подобные недочеты.
Подскажите как правильней сделать?
|
(Offline)
|
|
25.06.2015, 23:45
|
#75
|
Мастер
Регистрация: 03.05.2010
Адрес: Подмосковье
Сообщений: 1,218
Написано 438 полезных сообщений (для 790 пользователей)
|
Ответ: PlayCanvas
ну, добавить параметры - время прыжка t, ускорение свободного падения g и расстояние между дорожками l.
Тогда горизонтальная скорость vx =l/t, вертикальная vy = g*t/2.
В принципе, позицию можно описать как функцию от времени и вообще не думать о скоростях.
Моделька в момент приземления как-то резко дёргается - приземляется раньше, чем должно быть с точки зрения смотрящего на полёт игрока.
__________________
О¯О ¡¡¡ʁɔvʎнdǝʚǝdǝu dиW
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 02:31.
|