刚学cocos2dx,想试试教程里的touch事件
教程是这样说的:
Layer接收触屏消息用法很简单,只需要覆写父类的4个方法(可以根据需要,但是ccTouchBegan()是必须要覆写的,并且其返回值对触屏事件的传递有影响,后面会总结),并在init()方法中将其添加到CCTouchDispacher中。
#ifndef __HELLOWORLD_SCENE_H__
#define __HELLOWORLD_SCENE_H__
#include "cocos2d.h"
class HelloWorld : public cocos2d::CCLayer
{
public:
// Here's a difference. Method 'init' in cocos2d-x returns bool, instead of returning 'id' in cocos2d-iphone
virtual bool init();
// there's no 'id' in cpp, so we recommand to return the exactly class pointer
static cocos2d::CCScene* scene();
// a selector callback
virtual void menuCloseCallback(CCObject* pSender);
// implement the "static node()" method manually
LAYER_NODE_FUNC(HelloWorld);
//virtual void onEnter();//必须
//virtual void onExit();//必须
//for touch
virtual bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent);
virtual void ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent);
virtual void ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent);
virtual void ccTouchCancelled(CCTouch *pTouch, CCEvent *pEvent);
};
#endif // __HELLOWORLD_SCENE_H__
但是编译的时候报错:
error C2061: 语法错误: 标识符“CCTouch”
如何解决???
如果在头文件之前加上
using namespace cocos2d;
则会报如下错误:
无法解析的外部符号 “public: virtual bool __thiscall HelloWorld::ccTouchBegan(class cocos2d::CCTouch *,class cocos2d::CCEvent *)” (?ccTouchBegan@HelloWorld@@UAE_NPAVCCTouch@cocos2d@@PAVCCEvent@3@@Z)