がおまる開発ブログ

cocos2d-xやlevelhelperを使って iPhone/Androidアプリの作り方を解説します

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[LevelHelper講座]第7回:LevelHelperの画像にCCScaleやCCCallFuncNを使ってみる

LevelHelperもcocos2d-xでいうCCSpriteを継承してるので、
CCMoveToやCCCallFuncN等を利用する事ができます。

今回のサンプルでは、CCScaleとCCJumpTo、CCCallFuncNを使った動きを試してみましょう。
画面をタッチするとジャンプしながら5秒かけてスケールを大きくして、
処理が終わると画像を消すという流れになっています。

s_20130125_5.png

移動完了後の処理を定義してます

class HelloWorld : public cocos2d::CCLayer {
public:
~HelloWorld();
HelloWorld();

// returns a Scene that contains the HelloWorld as the only child
static cocos2d::CCScene* scene();

void initPhysics();
virtual void draw();
virtual void ccTouchesEnded(cocos2d::CCSet* touches, cocos2d::CCEvent* event);
void update(float dt);

private:
b2World* world;
LevelHelperLoader* lh;

void moveDone(LHSprite* spr);
};



void HelloWorld::ccTouchesEnded(CCSet* touches, CCEvent* event)
{
CCSize s = CCDirector::sharedDirector()->getWinSize();

//Add a new body/atlas sprite at the touched location
CCSetIterator it;
CCTouch* touch;

for( it = touches->begin(); it != touches->end(); it++)
{
touch = (CCTouch*)(*it);

if(!touch)
break;

CCPoint location = touch->getLocationInView();
location = CCDirector::sharedDirector()->convertToGL(location);


// LevelHelper中のlionを取得
LHSprite* spr = lh->spriteWithUniqueName("lion");
spr->setScale(0.1);
spr->setPosition(ccp(s.width/2, s.height*0.7));

// 5秒かけてスケールを1にする
CCScaleTo* scale = CCScaleTo::create(5, 1);

// 5秒かけて指定座標に50の高さで5回ジャンプする
CCJumpTo* jump = CCJumpTo::create(5, ccp(s.width/2, s.height/2), 50, 5);

// スケールとジャンプを同時に実行
CCFiniteTimeAction* spwn = CCSpawn::create(scale, jump, NULL);

// moveDoneを実行する
CCCallFuncN* done = CCCallFuncN::create(this, callfuncN_selector(HelloWorld::moveDone));

// アクションが終了したら画像を消す
spr->runAction(CCSequence::create(spwn, done, NULL));

}
}
////////////////////////////////////////////////////////////////////////////////
void HelloWorld::moveDone(LHSprite *spr)
{
// 移動完了後にスプライトを削除する
spr->removeSelf();

}

スポンサーサイト

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://gaomar.blog.fc2.com/tb.php/22-1c04f1d9
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。