这个错误提示是因为在Cocos2d-x 3.17版本中,ccTouchBegan方法被声明为final,不允许被继承或覆盖。所以在升级到Cocos2d-x 3.17后,你需要修改你的代码来避免覆盖ccTouchBegan方法。

一种解决方法是使用新的触摸事件处理方法,即onTouchBegan方法。你可以按照以下步骤进行修改:

  1. 将ccTouchBegan方法的声明改为onTouchBegan: virtual bool onTouchBegan(Touch* touch, Event* event);

  2. 将ccTouchBegan方法的实现改为onTouchBegan: bool YourClass::onTouchBegan(Touch* touch, Event* event) { // 你的代码逻辑 }

  3. 在初始化时注册触摸事件监听器: auto touchListener = EventListenerTouchOneByOne::create(); touchListener->onTouchBegan = CC_CALLBACK_2(YourClass::onTouchBegan, this); _eventDispatcher->addEventListenerWithSceneGraphPriority(touchListener, this);

这样,你就可以在升级到Cocos2d-x 3.17后正常使用触摸事件处理了

cocos2dx20升级到cocos2dx 317后virtual bool ccTouchBeganCCTouch pTouch CCEvent pEvent;提示 error declaration of ccTouchBegan overrides a final function

原文地址: https://www.cveoy.top/t/topic/iggb 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录