监控触屏事件

来源:互联网 发布:拼多多与淘宝 编辑:程序博客网 时间:2024/06/18 08:42
#ifndef __HELLOWORLD_SCENE_H__
#define __HELLOWORLD_SCENE_H__

#include "cocos2d.h"
#include "Hello.h"

using namespace cocos2d;

class HelloWorld : public cocos2d:: CCLayer
{
public :
      // 初始化
      virtual bool init();
      static cocos2d :: CCScene* scene();
      CREATE_FUNC (HelloWorld );

      // 重写触屏回调函数
      virtual bool ccTouchBegan( CCTouch * pTouch , CCEvent * pEvent );
      virtual void ccTouchMoved( CCTouch * pTouch , CCEvent * pEvent );
      virtual void ccTouchEnded( CCTouch * pTouch , CCEvent * pEvent);

      // 重写生命周期函数
      virtual void onEnter();
      virtual void onExit();
};



#endif


#include "HelloWorldScene.h"
#include "../CocosDenshion/win32/MciPlayer.h"
#include "sprite_nodes/CCAnimation.h"
#include "AppMacros.h"
#include "Hello.h"
#include "menu_nodes/CCMenuItem.h"


using namespace cocos2d;
using namespace CocosDenshion;
USING_NS_CC ;

// 以上是Hello 场景     以下是HelloWorld的场景


// 返回一个特定的场景
CCScene * HelloWorld ::scene ()
{
      // 创建一个场景
      CCScene * scene = CCScene:: create ();

      // 将 HelloWorld 层加到场景 之中
      HelloWorld * layer = HelloWorld:: create ();
      scene ->addChild ( layer);
      return scene ;
}

// 对HelloWorld的场景进行初始化
bool HelloWorld :: init()
{
      bool bInitSucceed = false ;
     
      if (!CCLayer :: init())
      {
           return bInitSucceed ;
      }

      CCSprite * pSprite = CCSprite ::create ( "CloseNormal.png");
      pSprite ->setPosition ( ccp( 150 , 150 ));
      addChild (pSprite , 0 , 922 );

      return true ;
}

void HelloWorld :: onEnter()
{
      CCDirector ::sharedDirector ()-> getTouchDispatcher()-> addTargetedDelegate (this , 0 , false );
      CCLayer ::onEnter ();
}

void HelloWorld :: onExit()
{
      CCDirector ::sharedDirector ()-> getTouchDispatcher()-> removeDelegate (this );
      CCLayer ::onExit ();
}

bool HelloWorld :: ccTouchBegan( CCTouch * pTouch , CCEvent * pEvent )
{
      CCLOG ("ccTouchBegan" );
      return true ;
}

void HelloWorld :: ccTouchMoved( CCTouch * pTouch , CCEvent * pEvent )
{
      CCLOG ("ccTouchMoved" );
}


void HelloWorld :: ccTouchEnded( CCTouch * pTouch , CCEvent * pEvent)
{
      CCLOG ("ccTouchEnded" );

      if (!pTouch )
      {
           CCLOG ("HelloWorld::ccTouchesEnded pTouch Null" );
           return ;
      }

      // 获取离开时的坐标
      CCPoint point = pTouch ->getLocation ();

      // 获取tag=922的精灵
      CCSprite * pSprite = ( CCSprite*) this ->getChildByTag ( 922);
      if (!pSprite )
      {
           CCLOG ("HelloWorld::ccTouchesEnded pSprite Null");
           return ;
      }

      // 暂停所有动作
      pSprite ->stopAllActions ();

      pSprite ->runAction ( CCMoveTo:: create (1 , point ));
}

 
0 0