首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何创建CCMenuItemImage的子类

如何创建CCMenuItemImage的子类
EN

Stack Overflow用户
提问于 2012-12-07 06:39:02
回答 1查看 556关注 0票数 2

我收到一个错误,说我错误地将CCMenuItemImage转换为"Button“

button.cpp:

代码语言:javascript
运行
复制
#include "button.h"

void Button::selected(){
    CCLOG("SELECTED");
}

void Button::unselected(){
    CCLOG("UNSELECTED");
}

button.h:

代码语言:javascript
运行
复制
#ifndef BUTTON_H
#define BUTTON_H
#include "cocos2d.h"

class Button : public cocos2d::CCMenuItemImage{
public:
    virtual void selected();

    virtual void unselected();
};

#endif

SinglePlayer.ccp:

代码语言:javascript
运行
复制
//I get an error 'invalid conversion from 'cocos2d::CCMenuItemImage*' to 'Button*' '

Button *left1 = Button::create("turncircle.png","turncircle.png", this, menu_selector(SinglePlayer::turning));
EN

Stack Overflow用户

发布于 2012-12-08 01:41:25

当您调用Button::create时,它实际上引用了CCMenuItemImage中的create方法,因此您将得到一个CCMenuItemImage (而不是Button)。

您需要在Button类中创建一个static create方法。您仍然可以在您的超类中引用初始化器,因此它应该相当简单。因此,在Button类的create方法中,执行如下操作:

代码语言:javascript
运行
复制
Button* Button::create(const char* normalImg, const char* selectedImg) {
    Button *button = new Button ();
    if (button && button->CCMenuItemImage::initWithNormalImage(normalImg, selectedImg, NULL, NULL, NULL) {
      button->autorelease ();
      return button;
    } else {
      delete button;
      button = NULL;
      return NULL;
    }
}

(免责声明:我实际上并没有测试这一点,只是这里的一些快速代码。)

如果使用这个create方法,它将返回一个Button对象,这正是您要查找的对象。

您要查找的初始化器是:

代码语言:javascript
运行
复制
bool CCMenuItemImage::initWithNormalImage(const char *normalImage, const char *selectedImage, const char *disabledImage, CCObject* target, SEL_MenuHandler selector);

您可能希望使Button类的create构造函数容纳更多的CCMenuItemImage初始值。你说了算。

跟踪CCMenuItem.cpp文件;CCMenuItemImage本身是CCMenuItem的子类,因此这应该为您提供一个相当强的参考点,了解应该如何设置所有这些内容。( CCMenuItem和CCMenuItemImage都在CCMenuItem.cpp/.h文件中定义。)

希望这能有所帮助!!

票数 4
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13753906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档