U8's AppLabo

swift,cocos2d-x,Unityを使ったiOSアプリ作成の備忘録

未分類

cocos2d-x でマインスイーパーを作ってみた 〜その3

投稿日:2016年10月6日 更新日:

それでは今回はパネルにタッチすると色が変わる様にします。

今回はパネルをPanelクラスとして用意する。

HelloWorld.hとHelloWorld.cppに以下のコードを追加する。

class Panel:public cocos2d::Sprite{
protected:
    
public:
    virtual bool init();
    void onEnter() override;
    
    void touchEvent();
    
    virtual bool onTouchBegan(cocos2d::Touch* touch,cocos2d::Event* event);
    virtual void onTouchEnded(cocos2d::Touch* touch,cocos2d::Event* event);

    CREATE_FUNC(Panel);
    
};

bool Panel::init(){
  
    if (!Sprite::init()) {
        return false;
    }
    
   //イベントリスナーを作成
    auto _listener = EventListenerTouchOneByOne::create();

    _listener->setSwallowTouches(false);
    
    _listener->onTouchBegan = CC_CALLBACK_2(Panel::onTouchBegan, this);
    _listener->onTouchEnded = CC_CALLBACK_2(Panel::onTouchEnded, this);

    //イベントリスナーを追加
    _eventDispatcher->addEventListenerWithSceneGraphPriority(_listener, this);

    return true; 
}

void Panel::onEnter(){
    
    Sprite::onEnter();

    //Panelの大きさ色を決定
    Rect _rect = Rect(0,0,80,80);
    this->setTextureRect(_rect);
    this->setColor(Color3B::WHITE);
     
}

bool Panel::onTouchBegan(cocos2d::Touch *touch, cocos2d::Event *event){
    
    auto _p = touch->getLocation();

    //タッチの座標がパネル上にあるかを調べる
    if (this->getBoundingBox().containsPoint(_p)) {
        
        return true;
    }
    
    return false;
    
}

void Panel::onTouchEnded(cocos2d::Touch *touch, cocos2d::Event *event){
    
    this->touchEvent();
    
}

void Panel::touchEvent(){

    //Panelの色を赤に変更
    this->setColor(Color3B::RED);

}

次にHelloWorld::onEnter()内にあるauto _panel を以下のように置き換える

auto _panel = Sprite::create();
        ↓
auto _panel = Panel::create();

実行して適当なパネルをタッチすると…

sono-4

見事にパネルの色がかわりました^^

フッターアド




フッターアド




-未分類

執筆者:

関連記事

実機でのテスト時に画像読み込みエラー

シミュレータでは問題なく動作するのに実機でテストすると何故かエラーになる。 コンソールのエラーメッセを見るとどうもスプライトに画像が設定されていないのが 原因。画像ファイルのリンク?が上手く行ってない …

no image

【cocos2d-x】画像ファイルの必要ないSpriteの作成(c++)

アプリの作成をしていると、プレイスホルダーとしてSpriteを使用することがあるかとおもいます。 しかし単なるプレイスホルダーに画像ファイルを用意するのは面倒なので、rectからspriteを作成する …

cocos2d-x でマインスイーパーを作ってみた 〜その4

地雷のかくされたパネルをタッチすると赤色、それ以外は灰色に変化する様にプログラムを修正する。 まずパネルに地雷が隠されているかどうかを設定するためにPanelクラスのpublicに bool bomb …

cocos2d-x でマインスイーパーを作ってみた 〜その1〜

cocos2d-xでマインスイーパを作成したので覚書き 完成画面はコレ   それではまずcocos2d-xで新規のプロジェクトを作成。 画面はiPhone7に合わせるので750×1334に固 …

no image

「俺の部屋?からの脱出」プライバシーポリシー

基本方針
 「俺の部屋?からの脱出」は、当アプリを通じて、お客様の個人情報をご提供いただかないことを約束します。 データ通信の使用目的 
当アプリにおけるデータ通信は、広告の表示をするのみに限られ、個 …