粒子效果
#ifndef __HELLOWORLD_SCENE_H__#define __HELLOWORLD_SCENE_H__#include "cocos2d.h"using namespace cocos2d;class HelloWorld : public cocos2d::CCLayer{CCParticleSystem* particleSystem; //粒子系统public:// Here's a difference. Method 'init' in cocos2d-x returns bool, instead of returning 'id' in cocos2d-iphonevirtual bool init(); // there's no 'id' in cpp, so we recommand to return the exactly class pointerstatic cocos2d::CCScene* scene();// a selector callbackvirtual void menuCloseCallback(CCObject* pSender);void ccTouchesEnded(cocos2d::CCSet* touches,cocos2d::CCEvent* event);// implement the "static node()" method manuallyLAYER_NODE_FUNC(HelloWorld);};#endif // __HELLOWORLD_SCENE_H__#include "HelloWorldScene.h"USING_NS_CC;CCScene* HelloWorld::scene(){// 'scene' is an autorelease objectCCScene *scene = CCScene::node();// 'layer' is an autorelease objectHelloWorld *layer = HelloWorld::node();// add layer as a child to scenescene->addChild(layer);// return the scenereturn scene;}// on "init" you need to initialize your instancebool HelloWorld::init(){//////////////////////////////// 1. super init firstif ( !CCLayer::init() ){return false;}this->setIsTouchEnabled(true); //设置可触摸/////////////////////////////// 2. add a menu item with "X" image, which is clicked to quit the program// you may modify it.// add a "close" icon to exit the progress. it's an autorelease objectCCMenuItemImage *pCloseItem = CCMenuItemImage::itemFromNormalImage("CloseNormal.png","CloseSelected.png",this,menu_selector(HelloWorld::menuCloseCallback) );pCloseItem->setPosition( ccp(CCDirector::sharedDirector()->getWinSize().width - 20, 20) );// create menu, it's an autorelease objectCCMenu* pMenu = CCMenu::menuWithItems(pCloseItem, NULL);pMenu->setPosition( CCPointZero );this->addChild(pMenu, 1);/////////////////////////////// 3. add your codes below...// add a label shows "Hello World"// create and initialize a label CCLabelTTF* pLabel = CCLabelTTF::labelWithString("TestTouchFire", "Arial", 24);// ask director the window sizeCCSize size = CCDirector::sharedDirector()->getWinSize();// position the label on the center of the screenpLabel->setPosition( ccp(size.width / 2, size.height - 30) );// add the label as a child to this layerthis->addChild(pLabel, 1);// add "HelloWorld" splash screen"//CCSprite* pSprite = CCSprite::spriteWithFile("HelloWorld.png");// position the sprite on the center of the screen//pSprite->setPosition( ccp(size.width/2, size.height/2) );// add the sprite as a child to this layer//this->addChild(pSprite, 0);particleSystem = CCParticleFire::node(); // CCParticleFire 节点对象particleSystem->retain();particleSystem->setTexture( CCTextureCache::sharedTextureCache()->addImage("fire.png")); //设置贴图CCPoint p = particleSystem->getPosition(); //取得 点位置particleSystem->setPosition( CCPointMake(p.x, 100) ); //设置粒子位置this->addChild(particleSystem,10); //向布景添加 粒子系统return true;}void HelloWorld::ccTouchesEnded(CCSet* touches, CCEvent* event){ CCTouch* touch = (CCTouch*)(touches->anyObject()); CCPoint location = touch->locationInView(touch->view()); location = CCDirector::sharedDirector()->convertToGL(location); particleSystem->setPosition(location); //设置粒子位置 // this->addChild(particleSystem,10); //向布景添加 粒子系统}void HelloWorld::menuCloseCallback(CCObject* pSender){CCDirector::sharedDirector()->end();#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)exit(0);#endif}