Как мы фиксируем движение влево и вправо с помощью cocos2d?

Как зафиксировать движение влево, вправо и верхнее движение с помощью cocos2d?

Я беру один спрайт (автомобиль), и если я двигаюсь влево, он должен двигаться влево на экране и вправо, если вы двигаетесь вправо.


person Community    schedule 06.03.2009    source источник


Ответы (2)


Cocos2d использует пользовательские обратные вызовы, называемые ccTouchesBegan, ccTouchesEnded и т. д., в основном те же обратные вызовы, которые вы использовали бы в обычном UIView для обнаружения касаний или изменений акселерометра, но с Cocos2d добавляются буквы «cc» — это позволяет распространять события на происходить.

Вы должны вернуть kEventHandled или kEventIgnored — эти события передаются только слоям Cocos2d. Если в сцене несколько слоев, каждый слой получит событие (в порядке, обратном их добавлению в сцену, а не в их z-порядке). Если вы возвращаете kEventHandled, событие затем отбрасывается и не передается дальше по цепочке, в противном случае событие передается дальше по цепочке на следующий уровень до тех пор, пока не будет возвращено kEventHandled или пока всем уровням не будет предоставлена ​​возможность обработать событие.

person David Higgins    schedule 15.04.2009

Есть несколько способов реализовать движение в приложении для iPhone.

  1. Вы можете использовать акселерометр (наклонять устройство вокруг различных осей.
  2. Коснитесь и перетащите. Вы можете отслеживать направление перетаскивания и соответствующим образом перемещать спрайт.
  3. Вы можете использовать простой механизм касания, при котором нажатие на левую часть экрана перемещает юнит влево, а нажатие на правую — вправо.

Надеюсь, это даст вам некоторые идеи.

person EightyEight    schedule 05.04.2009