Если перемещение не допустимо (строка 9), то мы выходим из функции (строка 10). Если объект имеет допустимое значение type, то мы обновляем координаты шара (строки 11-14).
Следующие три части этого большого условного выражения выполняют такие же действия, что и первая часть, разница заключается в том, как они вычисляют положение кромки шара и обновляют его координаты. Кромка шара, которая нас интересует, зависит от направления движения. Если была нажата стрелка вниз, то нас интересует нижняя кромка шара. Если была нажата левая стрелка, то нас интересует самая левая граница шара. Наконец – теперь все в комплекте – если была нажата стрелка вверх, то нас интересует самый верхний край шара.
Сгенерируйте SWF из этого файла. Вы можете использовать ваши кнопки направления для перемещения шара. Нажмите на сетку и добавьте несколько стен. Подвигайте шар в разных направлениях и обратите внимание, что он не заходит в ячейку, в которой находится стена. Обратите внимание, что все стены ведут себя таким же образом; не имеет значения, на что похожи стены или как много ячеек занимает стена. Используйте творчески комбинации стен или меньший размер ячеек, по вашему усмотрению.
Другой факт, на который следует обратить внимание, состоит в том, что есть лишь один способ обрабатывать ячейки в плиточном мире. Более сложные игры имеют настоящее обнаружение столкновений внутри ячейки. В этом случае, шар мог бы входить в ячейку, которая имеет стену, но затем обнаружение столкновения проверило бы – нужно ли оттолкнуть шар назад, чтобы он не мог двигаться непосредственно через саму стену.
Материализация данных о мире
Одна из лучших особенностей плиточных миров состоит в простоте, с которой вы можете сохранять данные, которые описывают эти миры. Например, для игры Пэк-Мэн (без привидений) вы можете легко создать текстовый документ для хранения типа каждой ячейки. Этот текстовый документ обычно представлен в формате XML. Позднее эта информация может быть загружена в вашу игру и мир может быть построен