Cocos2d-x3.1 particle usage
1. header files
#include cocos2d.hUSING_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 File
#include WaterWaveDemo.h#include SimpleAudioEngine.husing 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}