首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

粒子成效

2012-07-01 
粒子效果#ifndef __HELLOWORLD_SCENE_H__#define __HELLOWORLD_SCENE_H__#include cocos2d.husing names

粒子效果

#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}






热点排行