当前位置: 首页 > 知识库问答 >
问题:

Cocos2d-x与CCCallback的问题与参数

杜浩壤
2023-03-14

我试图用CCSequence制作一个精灵的动画,我需要把参数传递给回调函数,但当我这么做的时候,我得到了

信号11(SIGSEGV),代码1(SEGV_MAPERR),故障地址000000 21

这是我的代码:

void Board::createExplotion(CCPoint boardPosition){
    Mineral* mineralToAnimate = this->boardPieces[(unsigned char) boardPosition.y][(unsigned char) boardPosition.x];
    CCArray* params = CCArray::create(mineralToAnimate, NULL);

    params->retain();

    CCSequence* s1 = CCSequence::create(
                        CCScaleTo::create(0.5f, SELECTED_SCALE),
                        CCScaleTo::create(0.25f, SELECTED_SCALE + 0.1),
                        CCCallFuncO::create(this, callfuncO_selector(Board::test), params )
                        //CCCallFunc::create(this, callfunc_selector(Board::test))
                    );

        mineralToAnimate->runAction(s1);
    }

void Board::test(CCNode* sender, CCObject* data){ ... }

我在没有参数的情况下尝试了相同的代码,它很有效。

我正在使用eclipse和调试器没有太大帮助,或者至少我不知道如何,和adb logcat显示:

建立指纹:

/espressowifix x/espressowifi: 4.1.1/JRO03C/P3110XXCLK7: user/发行密钥'pid: 4931, tid: 4946, name: Thread-32873

谢谢

共有1个答案

杜辉
2023-03-14

如果您想发送带有操作回调的数据,那么您必须使用节点和数据选择器而不是对象选择器。因此更改行:

CCCallFuncO::create(this, callfuncO_selector(Board::test), params )

CCCallFuncND::create(this, callfuncND_selector(Board::test), params )
 类似资料:
  • quick-cocos2d-x 是一个游戏快速开发框架,基于 cocos2d-x,使用 Lua 来编写移动游戏。 对于初次接触 quick 的开发者,建议直接用 player 模拟器执行 quick 附带的示例程序。然后通过修改、完善这些示例程序来学习 quick-cocos2d-x。这样可以避免一开始就陷入如何配置编译环境的繁琐步骤中。

  • 著名的开源社区 Cocos2d 发布 Cocos2d-X for XNA 版本。该游戏引擎针对微软最新移动操作系统 Windows Phone 7 平台,开发者可以采用 C# 语言开发基于 Windows Phone 平台的游戏,而无需学习 XNA 绘图接口。现改名为cocos2d-xna,利用monogame框架跨平台,支持的平台包括WP7,XBox 360, iOS, Android, Pla

  • 我试图通过Weblogic上的JaCoCo找到代码覆盖率(不是测试用例) 下面是我在服务器下给出的条目- -Java agent:/apps/dev 4/deploy/code-coverage/jaco agent . jar = dest file =/apps/dev 4/deploy/code-coverage/jaco co . exec,append=false,includes=*

  • 问题内容: 我不明白注释和之间的实际区别是什么? 扩展名还是它们具有完全不同的含义?什么时候应该使用它们?在服务层中使用Spring ,在DAO 中使用javax? 谢谢回答。 问题答案: 几年前,Spring定义了自己的Transactional注释以使Spring bean方法具有事务性。 Java EE 7终于做了同样的事情,现在除了EJB方法外,还允许CDI bean方法是事务性的。因此,

  • 为什么在例子中调用 time.sleep() 不会并发执行? 我的代码是异步的, 但它不能在两个浏览器标签页上并行运行. Many people’s first foray into Tornado’s concurrency looks something like this: class BadExampleHandler(RequestHandler): def get(self):

  • 问题内容: 我只是开始玩GWT,我很难让GWT + JAVA + JDO + Google AppEngine与DataStore一起工作。我试图按照不同的教程学习,但是没有运气。例如,我喜欢这些教程:TUT1 TUT2 我无法弄清楚如何才能完成这项工作。请查看我的简单代码,并告诉我需要做什么,以便可以将其持久保存到数据存储区: 1.地址实体 2.个人实体 3. RPCCalls 4. RPCCa