がおまる開発ブログ

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

スポンサーサイト

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

[LevelHelper講座]第3回:LevelHelper内のスプライトにアクセスする

前回はcocos2d-xに組み込む所まで説明しました。

今回はLevelHelper内に設置した画像にアクセスする方法をお知らせします。


ユニーク名を付ける
設置しているキリンにユニーク名を付けましょう。
s_20130121_0.png


cocos2d-xからアクセスする
前回作成したプロジェクトを起動してください。
まだ無い人は前回の記事を参考してください。


void HelloWorld::ccTouchesEnded(CCSet* touches, CCEvent* event)
{
//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);

LHSprite* spr = lh->spriteWithUniqueName("kirin");
spr->setPosition(location);

}
}


spriteWithUniqueNameメソッドでLevelHelperで指定したユニーク名を記述します。
setPositionでタッチした所に画像を移動させています。

キーポイントは「LHSprite」ですね
CCSpriteみたいなもんです。
結構汎用性の高いクラスですわ。


s_20130121_1.png

かなり簡単にアクセス出来ますよね〜


画像を増やす
次はタッチした所にキリンをどんどん表示させていきましょう。

17行目をcreateBatchSpriteWithUniqueNameメソッドに書き換えればOKです。
これでタッチした所にキリンが表示されます。

void HelloWorld::ccTouchesEnded(CCSet* touches, CCEvent* event)
{
//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);

LHSprite* spr = lh->createBatchSpriteWithUniqueName("kirin");
spr->setPosition(location);

}
}


s_20130121_2.png


キリンを削除する
次は削除してみましょう!

17行目で画像にアクセスして、
18行目のremoveSelf()で削除します。


void HelloWorld::ccTouchesEnded(CCSet* touches, CCEvent* event)
{
//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);

LHSprite* spr = lh->spriteWithUniqueName("kirin");
spr->removeSelf();

}
}



これで画面のどこでも良いのでタッチすると、
キリンの画像が消えます。


スポンサーサイト

コメント

コメントの投稿


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

トラックバック

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

FC2Ad

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