HelloWorld::HelloWorld()
{
smoke=CCParticleSmoke::create();
sun=CCParticleSun::create();
}
HelloWorld::~HelloWorld()
{
smoke->setAutoRemoveOnFinish(true);
sun->setAutoRemoveOnFinish(true);
}
CCScene* HelloWorld::scene()
{
// 'scene' is an autorelease object
CCScene *scene = CCScene::create();
// 'layer' is an autorelease object
HelloWorld *layer = HelloWorld::create();
// add layer as a child to scene
scene->addChild(layer);
// return the scene
return scene;
}
boolHelloWorld::init()
{
CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this,0,false);
bool bRet = false;
do
{
CC_BREAK_IF(! CCLayer::init());
CCSprite* pSprite = CCSprite::create("background.png");
CC_BREAK_IF(! pSprite);
pSprite->setPosition(ccp(400, 240));
this->addChild(pSprite, 0);
sun->setTextureWithRect(CCTextureCache::sharedTextureCache()->addImage("fire.png"),CCRectMake(0,0,32,32));
sun->setPosition(ccp(700,350));
addChild(sun);
smoke->setTextureWithRect(CCTextureCache::sharedTextureCache()->addImage("fire.png"),CCRectMake(0,0,32,32));
smoke->setPosition(ccp(600,150));
smoke->setLife(1);
addChild(smoke);
strike=CCMotionStreak::create(1.0,16, 16, ccWHITE, "sprite.png");
addChild(strike,1);
strike->setPosition(ccp(240,160));
bRet = true;
} while (0);
return bRet;
}
bool HelloWorld::ccTouchBegan(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent)
{
x=pTouch->getLocation().x;
y=pTouch->getLocation().y;
CCLog("ccTouchBegan");
strike->setPosition(pTouch->getLocation());
returntrue;
}
void HelloWorld::ccTouchMoved(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent)
{
CCLog("ccTouchMoved");
getLine(pTouch->getLocation());
strike->setPosition(pTouch->getLocation());
}
void HelloWorld::ccTouchEnded(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent)
{
if(fabs(pTouch->getLocation().x-x)<20&&fabs(pTouch->getLocation().y-y)<20)
{
getBoom(pTouch->getLocation());
}
CCLog("ccTouchEnded");
}
voidHelloWorld::getLine(CCPoint pt)
{
cocos2d::CCParticleSystemQuad *mSystem=CCParticleSystemQuad::create("Particle.plist");
mSystem->setTextureWithRect(CCTextureCache::sharedTextureCache()->addImage("Particle.png")
,CCRectMake(0,0,32,32));
mSystem->setPosition(pt);
mSystem->setDuration(0.3f);
mSystem->setLife(0.5f);
addChild(mSystem);
mSystem->setAutoRemoveOnFinish(true);
}
voidHelloWorld::getBoom(CCPoint pt)
{
CCParticleSystemQuad*mSystem2 = CCParticleSystemQuad::create("Boom.plist");
mSystem2->setTextureWithRect(CCTextureCache::sharedTextureCache()->addImage("fire.png")
,CCRectMake(0,0,32,32));
mSystem2->setPosition(pt);
mSystem2->setDuration(0.05f);
addChild(mSystem2);
mSystem2->setAutoRemoveOnFinish(true);
}