刚开始学coocs,想在界面上放一个按钮,点击按钮执行回调,然后在控制打印一行字,代码是这样的:
(1)头文件
#ifndef JustJump__JJGameScene
#define JustJump__JJGameScene
#include “cocos2d.h”
class JJGameScene : public cocos2d::Layer
{
public:
static cocos2d::Scene* createScene();
virtual bool init();
void menuCloseCallback(cocos2d::Ref* pSender);
CREATE_FUNC(JJGameScene);
};
#endif /* defined(JustJump__JJGameScene) */
(2)m文件
#include “JJGameScene.h”
USING_NS_CC;
Scene* JJGameScene::createScene()
{
auto scene = Scene::create();
auto layer = JJGameScene::create();
scene->addChild(layer);
return scene;
}
bool JJGameScene::init()
{
if ( !Layer::init() )
{
return false;
}
Size visibleSize = Director::getInstance()->getVisibleSize();
Vec2 origin = Director::getInstance()->getVisibleOrigin();
auto closeItem = MenuItemImage::create(
"CloseNormal.png",
"CloseSelected.png",
CC_CALLBACK_1(JJGameScene::menuCloseCallback, this));
closeItem->setPosition(Vec2(origin.x + visibleSize.width - closeItem->getContentSize().width/2 ,
origin.y + closeItem->getContentSize().height/2));
// create menu, it’s an autorelease object
auto menu = Menu::create(closeItem, NULL);
menu->setPosition(Vec2::ZERO);
this->addChild(menu, 1);
return true;
}
void menuCloseCallback(cocos2d::Ref* pSender){
CCLOG(“AAAAAAAA”);
}
感觉没什么问题,但是编译通过不了,报下面的问题,求高手指点
Undefined symbols for architecture i386:
“JJGameScene::menuCloseCallback(cocos2d::Ref*)”, referenced from:
JJGameScene::init() in JJGameScene.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)