(5)cocos2d for iPhone をcocos2d-xに移植する過程の記録メモ、Androidクロスプラットフォーム化へ 、タップしたときに画像の領域にあるか、画像をタップしたかの判定

(5)cocos2d for iPhone をcocos2d-xに移植する過程の記録メモ、Androidクロスプラットフォーム化へ 、タップしたときに画像の領域にあるか、画像をタップしたかの判定

(4)cocos2d for iPhone をcocos2d-xに移植する過程の記録メモ、Androidクロスプラットフォーム化へ 、update(float delta)、タップイベント
(3)cocos2d for iPhone をcocos2d-xに移植する過程の記録メモ、、CCArrayにint型を挿入する方法、これがcocos2d-xに見当たらないので、vectorにする

・CGRectはCCRect
cocos2d for iPhone
[c]
CGRect rect=CGRectMake(x, y, w, h);
[/c]

cocos2d-x ココス2d−x
[c]
CCRect rect=CCRect(x, y, w, h);
[/c]

・タップしたときに画像の領域にあるか、画像をタップしたかの判定
cocos2d for iPhone
[c]
//locationは、-(void)ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)eventのCGPoint
CGRect rect=CGRectMake(x, y, w, h);
if(CGRectContainsPoint(rect, location)){
//
}
[/c]

cocos2d-x
[c]
//locationは、ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent)のCCPoint
CCRect rect=CCRect(x, y, w, h);
if (rect.containsPoint(location)) {
//
}
[/c]

・アニメーション

2013年7月8日現在で動作未確認、コンパイルエラーなし、実行未確認(画像未作成のため)
cocos2d for iPhone
[c]
nami=[CCSprite spriteWithFile:@"nami1.png"];
nami.position=ccp(-80,windowsSize.height/2);
id namiMove=[CCMoveTo actionWithDuration:8.0f position:ccp(500,windowsSize.height/2)];
id callfuncN_nami=[CCCallFuncN actionWithTarget:self selector:@selector(moveNami:)];
id sequence_nami=[CCSequence actions:namiMove,callfuncN_nami, nil];
[nami runAction:[CCRepeatForever actionWithAction:sequence_nami]];
[self addChild:nami];
[/c]

cocos2d-x
[c]
nami=new CCSprite();
nami->initWithFile("nami1.png");
nami->autorelease();
nami->setPosition(ccp(-80,size.height/2));
CCMoveTo *namiMove=CCMoveTo::create(8, ccp(500, size.height/2));
CCCallFuncN *callfuncN_nami=CCCallFuncN::create(this, callfuncN_selector(HelloWorld::moveNami));
CCSequence *sequence_nami=CCSequence::createWithTwoActions(namiMove, callfuncN_nami);
nami->runAction(CCRepeatForever::create(sequence_nami));
this->addChild(nami);
[/c]
・テクスチャアニメーション、ぱらぱらあにめ
参考サイト

c++ – How to play animations in Cocos2d-x? – Game Development Stack Exchange

  1. android – cocos2d-x sprite animation using .plist – Stack Overflow
  2. Cocos2d-xのパラパラアニメーション: 業務系エンジニアによるiPhoneアプリ開発日記
  3. Cocos2d-x CCAnimation メモリリーク – Qiita [キータ]
  4. CCAnimationの基本 | Blog for Smartphone Seminar 2013

2013年7月9日現在で動作未確認、コンパイルエラーなし、実行未確認(画像未作成のため)
cocos2d for iPhone
[c]
//anime
CCSprite *tmpSprite=[CCSprite spriteWithFile:@"hiyoko_256by256_base.png"];
CCSpriteFrame *frame1=[CCSpriteFrame frameWithTexture:tmpSprite.texture
rect:CGRectMake(0, 0, 60, 60 )];
CCSpriteFrame *frame2=[CCSpriteFrame frameWithTexture:tmpSprite.texture
rect:CGRectMake(60, 0, 60, 60 )];
CCSpriteFrame *frame3=[CCSpriteFrame frameWithTexture:tmpSprite.texture
rect:CGRectMake(120, 0, 60, 60 )];
CCSpriteFrame *frame4=[CCSpriteFrame frameWithTexture:tmpSprite.texture
rect:CGRectMake(180, 0, 60, 60 )];
NSArray *animFrames=[NSArray arrayWithObjects:frame1,frame2
,frame3,frame4, nil];
animation_test=[CCAnimation animationWithSpriteFrames:animFrames delay:0.1f];
[/c]

cocos2d-x
[c]
CCTexture2D *animeTexture=new CCTexture2D();
CCImage *animeImg=new CCImage();
animeImg->initWithImageFile("hiyoko_256by256_base.png");
animeTexture->initWithImage(animeImg);
CCSpriteFrame *frame1=new CCSpriteFrame();
CCSpriteFrame *frame2=new CCSpriteFrame();
CCSpriteFrame *frame3=new CCSpriteFrame();
CCSpriteFrame *frame4=new CCSpriteFrame();
frame1->initWithTexture(animeTexture, CCRectMake(0, 0, 60, 60));
frame2->initWithTexture(animeTexture, CCRectMake(60, 0, 60, 60));
frame3->initWithTexture(animeTexture, CCRectMake(120, 0, 60, 60));
frame4->initWithTexture(animeTexture, CCRectMake(180, 0, 60, 60));
CCArray *animFrames=new CCArray();
animFrames->initWithCapacity(4);
animFrames->addObject(frame1);
animFrames->addObject(frame2);
animFrames->addObject(frame3);
animFrames->addObject(frame4);
animation_test=CCAnimation::createWithSpriteFrames(animFrames, 0.1);
<del>animation_test->initWithSpriteFrames(animFrames, 0.1);</del>
<del datetime="2013-07-13T12:10:41+00:00">animation_test->initWithAnimationFrames(animFrames, 0.1, true);//後日実行するとエラーでした</del>
<del>animation_test=CCAnimation::createWithSpriteFrames(animFrames, 0.1);</del>//error
//sprite->runAction(CCRepeatForever::create(CCAnimate::create(animation)));//
[/c]

・音声
[c]
[SimpleAudioEngine sharedEngine].backgroundMusicVolume=0.3f;
[[SimpleAudioEngine sharedEngine] playBackgroundMusic:@"BGM2-hiyoko_out64k.mp3" loop:YES];
[/c]

cocos2d-x
[c]
SimpleAudioEngine::sharedEngine()->setBackgroundMusicVolume(0.3);
SimpleAudioEngine::sharedEngine()->playBackgroundMusic("BGM2-hiyoko_out64k.mp3", true);
__[/c]

31画像
【送料無料】ねんどろいど マクロスF(フロンティア) シェリル・ノーム(ホビー)
在庫あり
店舗名:ハピネット・オンライン
32画像
【仮面ライダーフォーゼ】フォーゼモジュールチェンジシリーズEXFMCS04 仮面ライダーメテオ【キャラクターセール☆仮面ライダー】
在庫あり
店舗名:トイセルタウン
33画像
銀魂 フィギュア GEM シリーズ 神楽 【予約7月】 代引き不可
在庫あり
店舗名:天天ストア 楽天市場店
34画像
オーキッドシード クイーンズブレイド 美しき闘士たち アレイン フィギュア【1月予約】
在庫あり
店舗名:でじたみん 楽天市場店
35画像
ヤマトガールズコレクション 宇宙戦艦ヤマト2199 岬百合亜 (艦内服Ver.) 1/8 完成品フィギュア[メガハウス]《10月予約》
在庫あり
店舗名:あみあみ
36画像
アルター 1/8 ソードアート・オンライン 桐ヶ谷直葉 フィギュア【11月予約】
在庫あり
店舗名:でじたみん 楽天市場店
37画像
ジェルストラップコレクション うたの☆プリンスさまっ♪Shining All Star CD BOX[コトブキヤ]《08月予約》
在庫あり
店舗名:あみあみ
38画像
リネージュII ダークエルフ(通常版) 1/7 完成品フィギュア[マックスファクトリー]《09月予約》
在庫あり
店舗名:あみあみ

こちらの記事もどうぞ