转载地址:http://user.qzone.qq.com/14280784/2
第一步:新建一个cocos2d-x 3.0的工程
第二步:在网上下载5幅图片,用photoshop做成一样大,并都用jpg方式存盘,把名字有意的序列化为1.jpg,2.jpg,3.jpg,4.jpg,5.jpg,这样序列化的目的是为了用程序进行批量控制 。
第三步:将这5个文件全部拷贝到工程的资源文件夹Resource 中.
第四步:HelloWorld的头文件中加入
virtual void onEnter();
bool onTouchBegan(cocos2d::Touch *touch,cocos2d::Event *pEvent);
void onTouchEnded(cocos2d::Touch *touch,cocos2d::Event *pEvent);
目的是为了写触屏事件。
第五步:在HelloWorld的实现文件中,加入如下代码:
void HelloWorld::onEnter() /*进入本类时做什么事*/
{
Layer::onEnter();//初始化基类的onEnter()
auto dispatcher = Director::getInstance()->getEventDispatcher();//导演获取监听分发
auto listener = EventListenerTouchOneByOne::create();//建立一个单触点的监听器
listener->onTouchBegan = CC_CALLBACK_2(HelloWorld::onTouchBegan,this);//监听按下事件,如果为真才可以有后面的事件
listener->onTouchEnded = CC_CALLBACK_2(HelloWorld::onTouchEnded, this);//绑定抬键事件
dispatcher->addEventListenerWithSceneGraphPriority(listener, this);//分发事件
}
/*只有onTouchBegan事件返回为真,才有可能判断其它的触屏事件*/
bool HelloWorld::onTouchBegan(cocos2d::Touch *touch,cocos2d::Event *pEvent)
{
return true;
}
/*触屏抬起的事件*/
void HelloWorld::onTouchEnded(Touch *touch, Event *unused_event)
{
this->removeChild(sprite);//首先清除己经显示的图片
++i; //点击一下,i的值加1,目的是为了换图片
if(i>5) i=1; //因为只有5幅图片,所以,大于5,就从头来
char x[50]; //目的是为了将整数转换为字符串
sprintf_s(x,"%d.jpg",i); //转整数为字符串
CCLOG(x); //调式用的,成功后,可以将此句删除
auto sprite = Sprite::create(x); //x字符串为准,建精灵
sprite->setPosition(Vec2(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y)); //实位屏幕中央
this->addChild(sprite, 0); //显示图片
}
第六步:将以下几个变量全部弄成全局变量
int i;
cocos2d::Size visibleSize;
cocos2d::Vec2 origin;
cocos2d::Sprite *sprite;
第七步:编译
附类的声明代码:
#ifndef __HELLOWORLD_SCENE_H__
#define __HELLOWORLD_SCENE_H__
#include "cocos2d.h"
class HelloWorld : public cocos2d::Layer
{
public:
HelloWorld();
static cocos2d::Scene* createScene();
virtual bool init();
void menuCloseCallback(cocos2d::Ref* pSender);
CREATE_FUNC(HelloWorld);
bool onTouchBegan(cocos2d::Touch *touch,cocos2d::Event *pEvent);
void onTouchEnded(cocos2d::Touch *touch,cocos2d::Event *pEvent);
virtual void onEnter(); /*正常监听的写法*/
int i;
cocos2d::Size visibleSize;
cocos2d::Vec2 origin;
cocos2d::Sprite *sprite;
};
#endif // __HELLOWORLD_SCENE_H__