(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

CGRect rect=CGRectMake(x, y, w, h);


cocos2d-x ココス2d−x

CCRect rect=CCRect(x, y, w, h);

・タップしたときに画像の領域にあるか、画像をタップしたかの判定
cocos2d for iPhone

//locationは、-(void)ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)eventのCGPoint
            CGRect rect=CGRectMake(x, y, w, h);
            if(CGRectContainsPoint(rect, location)){
            //
            }
            


cocos2d-x

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

・アニメーション

2013年7月8日現在で動作未確認、コンパイルエラーなし、実行未確認(画像未作成のため)
cocos2d for iPhone

        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];
        


cocos2d-x

    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++ – 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

        //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];
        


cocos2d-x

    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)));//

・音声

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


cocos2d-x

    SimpleAudioEngine::sharedEngine()->setBackgroundMusicVolume(0.3);
    SimpleAudioEngine::sharedEngine()->playBackgroundMusic("BGM2-hiyoko_out64k.mp3", true);
__
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月予約》
在庫あり
店舗名:あみあみ

関連記事

「スポンサーリンク」


ツイートツイート
カテゴリー: Androidアンドロイド携帯アプリ, iPhoneアイフォンアプリ開発 タグ: パーマリンク