【问题标题】:Update loop and buttons in cocos2d更新 cocos2d 中的循环和按钮
【发布时间】:2012-08-02 17:39:16
【问题描述】:
我有一个简单的月球着陆器游戏。
我通过集成计算位置和所有内容 - 例如每转一圈,我都会获取向量并将它们组合起来,然后将生成的向量应用于我的着陆器。
问题来了,我有一个按钮,我想用它来推力。
如何在更新方法期间检查它是否打开?我想我会有一些 BOOL 标志在按下按钮时设置为 YES,但我什么时候将其设置为 NO?
一些实际的实现会很棒。
我使用 cocos2d-iphone 和 iOS。
【问题讨论】:
标签:
ios
cocos2d-iphone
game-physics
game-loop
【解决方案1】:
嗯,伪代码如下:
我们不应使用按钮(又名 CCMenuItem),因为它们仅在修饰事件时提供回调。我们想要触摸,触摸退出/进入,触摸结束。
在您正在显示的CCScene 中,添加一个新的子类,它是CCLayer 的子类,甚至使用CCScene 中已经存在的CCLayer 之一。
在 CClayer 子类的 init 中,将 isTouchEnabled 设置为 YES。
- 实现常用方法:
- (void)ccTouchesBegan:...
- (void)ccTouchesMoved:...
- (void)ccTouchesEnded:...
- (void)ccTouchesCancelled:...
最后,用这些方法施展你的魔法吧。
- 获取触摸位置
- 使用
CGRectContainsPoint检查触摸是否在推力区域内。
- 等等,等等……