监控触屏事件

#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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值