1、头文件
#include "cocos2d.h"
USING_NS_CC;
class WaterWaveDemo : public Layer
{
public:
static cocos2d::Scene* createScene();
// Here's a difference. Method 'init' in cocos2d-x returns bool, instead of returning 'id' in cocos2d-iphone
virtual bool init();
// a selector callback
void menuCloseCallback(cocos2d::Ref* pSender);
// implement the "static create()" method manually
CREATE_FUNC(WaterWaveDemo);
};
2、cpp文件
#include "WaterWaveDemo.h"
#include "SimpleAudioEngine.h"
using namespace CocosDenshion;
Scene* WaterWaveDemo::createScene()
{
// 'scene' is an autorelease object
auto scene = Scene::create();
// 'layer' is an autorelease object
auto layer = WaterWaveDemo::create();
// add layer as a child to scene
scene->addChild(layer);
// return the scene
return scene;
}
bool WaterWaveDemo::init()
{
bool bRet = false;
do{
CC_BREAK_IF(!Layer::init());
auto listener = EventListenerTouchOneByOne::create();
listener->setSwallowTouches(true);
listener->onTouchBegan = [&](Touch* touch,Event* event){
auto touchPosition = touch->getLocation();
ParticleSystemQuad* mParticle = ParticleSystemQuad::create("showClick.plist");
mParticle->setScale(0.5);
mParticle->setPosition(touchPosition);
mParticle->setAutoRemoveOnFinish(true);
addChild(mParticle);
return false;
};
Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, this);
bRet = true;
}while(0);
return bRet;
}
void WaterWaveDemo::menuCloseCallback(Ref* pSender)
{
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WP8) || (CC_TARGET_PLATFORM == CC_PLATFORM_WINRT)
MessageBox("You pressed the close button. Windows Store Apps do not implement a close button.","Alert");
return;
#endif
Director::getInstance()->end();
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
exit(0);
#endif
}
代码下载:http://download.csdn.net/detail/yuxikuo_1/7861203