なかじまの開発ブログ

アプリ開発における備忘録などなど。

MENU

タッチイベントを取得する【cocos2d-x】

『.h』

#include "cocos2d.h"

class SampleLayer : public cocos2d::Layer {
public:
  virtual bool init();  // 初期化

  /* シングルタップイベント */
  // タッチ開始
  virtual bool onTouchBegan(cocos2d::Touch* touch, cocos2d::Event* event);
  // タッチ移動
  virtual void onTouchMoved(cocos2d::Touch* touch, cocos2d::Event* event);
  // タッチ終了
  virtual void onTouchEnded(cocos2d::Touch* touch, cocos2d::Event* event);
  // タッチキャンセル
  virtual void onTouchCencelled(cocos2d::Touch* touch, cocos2d::Event* event);
};


『.m』

USING_NS_CC;

// 初期化
bool SampleLayer::init() {
  if (!Layer::init()) {
    return false;
  }

  // シングルタップイベントの取得
  auto touchListener = EventListenerTouchOneByOne::create();

  touchListener->onTouchBegan = CC_CALLBACK_2(SampleLayer::onTouchBegan, this);
  touchListener->onTouchMoved = CC_CALLBACK_2(SampleLayer::onTouchMoved, this);
  touchListener->onTouchEnded = CC_CALLBACK_2(SampleLayer::onTouchEnded, this);
  touchListener->onTouchCancelled = CC_CALLBACK_2(SampleLayer::onTouchCancelled, this);

  _eventDispatcher->addEventListenerWithSceneGraphPriority(touchListener, this);
}

// タッチ開始
bool SampleLayer::onTouchBegan(Touch* touch, Event* event) {
  return true;
}

// タッチ移動
void SampleLayer::onTouchMoved(Touch* touch, Event* event) {

}

// タッチ終了
void SampleLayer::onTouchEnded(Touch* touch, Event* event) {
  
}

// タッチキャンセル
void SampleLayer::onTouchCencelled(Touch* touch, Event* event) {
  // タッチ終了を実行
  onTouchEnded(touch, event);
}
広告を非表示にする