zoukankan      html  css  js  c++  java
  • cocos2dx中的层CCLayer

    什么是层,层在cocos2dx里是一个能处理触摸事件的CCNode,因为它负责用户交互,因此大部分游戏细节都在这个类中完成,所以我们经常派生这个图层来完成逻辑交互代码。当然如果你的图层不需要接受交互信息,那么你可以直接使用CCNode来做图层,效率更高


    触摸处理设置:

    默认情况下,CCLayer并不接收触摸事件,只有设置了接收触摸事件才能接受触摸

    CCLayer::setTouchEnabled(true);

    这样Layer就能响应触摸实现了,当触摸开始时

    void CCLayer::ccTouchesBegan(CCSet* pTouches, CCEvent* pEvent);被调用

    当触摸进行时

    void CCLayer::ccTouchesMoved(CCSet* pTouches, CCEvent* pEvent);被调用

    当触摸结束时

    void CCLayer::ccTouchesEnded(CCSet* pTouches, CCEvent* pEvent);被调用

    当触摸过程被打断,比如来电打断了一个触摸事件时

    void CCLayer::ccTouchesCancelled(CCSet* pTouches, CCEvent* pEvent);被调用


    默认触摸是支持多点触摸的,所以被调用上述虚函数,如果不需要支持多点,只要单点,那么应该设置触摸模式

    virtual void setTouchMode(ccTouchesMode mode);

    typedef enum {

    kCCTouchesAllAtOnce,

    kCCTouchesOneByOne,

    } ccTouchesMode;

    其中kCCTouchesAllAtOnce表示支持多点触摸,kCCTouchesOneByOne表示支持单点触摸,在调用了

    setTouchMode(kCCTouchesOneByOne)时,那么调用另外一套虚函数如下:

    // default implements are used to call script callback if exist

    当触摸开始时,虚函数virtual bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent);被调用

    当手指移动时,虚函数virtual void ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent);被调用

    当手指离开时,虚函数virtual void ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent);被调用

    当来电打断触摸过程时,虚函数virtual void ccTouchCancelled(CCTouch *pTouch, CCEvent *pEvent);被调用


    CCLayer除了支持触摸输入之外,还能支持加速计输入,但是默认也是不支持的,需要增加代码来支持,调用

    virtual void setAccelerometerEnabled(bool value);

    可以设置加速计输入相应。


    这时我们可以重载

    virtual void didAccelerate(CCAcceleration* pAccelerationValue);

    函数来处理加速计的输入。









  • 相关阅读:
    Oracle X$ View:X$KJMSDP
    explore my oracle support using firefox 3.6
    EnterpriseDB Migration 迁移工具使用测试(2)
    What's preconnect.svc in 11g RAC?
    Mysql:语法:注释
    Mysql:命令选项、配置选项、(全局、会话)系统变量、状态变量:总揽
    Mysql:简单“破解”SQLyog Enterprise 812 Trial
    Mysql:函数之一:information functions
    Mysql:语法:虚拟表DUAL
    VC++.Net2005的一些常识(转)
  • 原文地址:https://www.cnblogs.com/new0801/p/6177190.html
Copyright © 2011-2022 走看看