Реализация игры-платформера
Вопрос: как представить игровое поле в javascript?
У самого имеется несколько идей: 1. Двумерный массив с пикселями (будет зависать) 2. Двумерный массив с блоками, например по 50px (перемещение только по блокам) 3. Двумерный массив с блоками, в котором положение игрока меняется при достижении определённой границы if ((pos_x % 50) > 25) ... Если выбрать этот вариант, то неполучится реализовать возможность "сдвигать" блоки. Ваши идеи? |
представь в виде абстрактной плоскости, а сущности представляй в виде координат их положения на этой плоскости, в том числе и сущность "камера" и её координаты.
а такие низкоуровневые вещи как пиксели и прочая хуита это дело рук браузера и видеокарты |
Тогда как определять наличие блока в данном месте? Перебором всех объектов?
|
Цитата:
Цитата:
|
Нет. Например, нужно переместить объект в некоторое место, если там нет блока, а иначе ничего не делать. Как узнать, есть ли там блок(и)?
|
у блоков должны быть размеры))
как определить пересекает ли один квадрат другой квадрат зная их разверы и коордлинаты?? ну я думаю нам нужно Хоккинга или Эйнштейна подключать для такого рода уравнений вычислений |
Цитата:
. Цитата:
|
грубо говоря да, но это можно оптимизировать. деля плоскость на квадраты и в каждом квадрате будет содержаться данные о том какие тут обьекты находятся.
Или даже так, Грубо говоря 2 массива упорядоченных по расположению обьектов. первый массив по горизонтали второй по вертикале. и поиск по этому массиву будет молнеиносно быстрый. это называется индексация. Иными словами чтобы все обекты не проверять можно индексировать их расположение в массивах и всегда держать эти массивы упорядоченными по расположению обектов. Иными словами переупорядочивать их при перемещени обектов. Но и это переупорядочивание можно оптимизировать. Потом просто хочешь посмотреть пересекают ли какие то обьекты нужный тебе, смотришщь его координаты, потом берешь СРЕДНИЙ обьектт из упорядоченного по расположению массива остальных обьектов, и если этот средний элемент стоит левее то отсекаешь от исследования правую часть массива, потом берешь средний элемент левой части, и отсекаешь которая не подходит. и.т.д. Таким образом в 4-7 итераций ты находишь ближайшие обьекты которые рссположены около твоего, их то и тестируешь на пересечение. КЭП. Я вообще ни одной игры не писал и даже незнаю как это делается, но просто логически думая советую это. Не знаю как там НА САМОМ ДЕЛЕ делается. |
Цитата:
Цитата:
Цитата:
|
блин погугли как делать индексацию поиска
|
Часовой пояс GMT +3, время: 09:20. |