2016-03-25 2 views
-3

My game boardPac-Man (столкновение)

Здравствуйте, недавно я начал заниматься с объектом Canvas и сделать игру серии Atari. У меня вопрос о том, как использовать методы или объект Canvas, лучше всего сделать, чтобы мой персонаж не касался стен и не двигался по определенным трекам? Я пытался таких условий, как:

if (pozX > 180 && pozX < 190) { 
    pozX = 185 
    } 

ответ

3

Вместо делать тестирование столкновения ...

Карта из приемлемых путей для ваших игровых персонажей

Например, здесь является частью вашей игровой доски ,

enter image description here

Вот соответствующая карта приемлемых путей. «1» представляет разрешенный ход, а «0» представляет собой запрещенный ход (игровая стена). Редактировать: Ой! Я испортил карту в правом нижнем углу - помилования!

enter image description here

Теперь вы можете обратиться к вашей приемлемой карте двигаться, когда игрок нажимает клавиши со стрелками для перемещения.

Например, если игрок начинает в левом верхнем углу (они начинаются с «синего 1»). Они могут перемещаться вправо и вниз, потому что эти перемещения перемещаются в «1». Но они не могут двигаться вверх или влево, потому что эти перемещения соответствуют «0».

+0

Хотя интересный, ваш способ сделать не позволит плавные ходы. Но, возможно, O.P. хочет сделать пошаговый Pacman !! ;-) – GameAlchemist

+0

@GameAlchemist. Достаточно справедливо ... но я понимаю, что вопросник только начинает изучать холст html5, поэтому я представляю базовый способ их запуска. ;-) Но да ... если вы хотите гладкого движения, вы можете, конечно, использовать линейную интерполяцию, чтобы оживить их от их начала до точки назначения. И вы можете использовать trasformations, чтобы вращать рот вашего пакмана в соответствующем направлении. Один шаг за раз...! – markE

+1

Спасибо за подсказки, которые меня ориентируют :) Я сделал двумерный массив: tab [x] [y] и условие относительно значения. – Monitxx

Смежные вопросы