更新 cocos2d 中的循环和按钮

Posted

技术标签:

【中文标题】更新 cocos2d 中的循环和按钮【英文标题】:Update loop and buttons in cocos2d 【发布时间】:2012-08-02 17:39:16 【问题描述】:

我有一个简单的月球着陆器游戏。 我通过集成计算位置和所有内容 - 例如每转一圈,我都会获取向量并将它们组合起来,然后将生成的向量应用于我的着陆器。

问题来了,我有一个按钮,我想用它来推力。 如何在更新方法期间检查它是否打开?我想我会有一些 BOOL 标志在按下按钮时设置为 YES,但我什么时候将其设置为 NO? 一些实际的实现会很棒。 我使用 cocos2d-iphone 和 ios

【问题讨论】:

【参考方案1】:

嗯,伪代码如下:

    我们不应使用按钮(又名 CCMenuItem),因为它们仅在修饰事件时提供回调。我们想要触摸,触摸退出/进入,触摸结束。

    在您正在显示的CCScene 中,添加一个新的子类,它是CCLayer 的子类,甚至使用CCScene 中已经存在的CCLayer 之一。

    CClayer 子类的 init 中,将 isTouchEnabled 设置为 YES

    实现常用方法:
- (void)ccTouchesBegan:... - (void)ccTouchesMoved:... - (void)ccTouchesEnded:... - (void)ccTouchesCancelled:...

最后,用这些方法施展你的魔法吧。

获取触摸位置 使用CGRectContainsPoint检查触摸是否在推力区域内。 等等,等等……

【讨论】:

以上是关于更新 cocos2d 中的循环和按钮的主要内容,如果未能解决你的问题,请参考以下文章

cocos2d iPhone中的循环背景

replaceScene 是只替换当前场景还是替换 Cocos2d 中的所有场景

cocos2d中如何为按钮添加动作

在 cocos2d 中恢复游戏循环

cocos2d 从按钮扩展触摸区域

如何从单视图应用程序启动 cocos2D 游戏