• CControlLayer


    #ifndef __CONTROLLAYER_H__
    #define __CONTROLLAYER_H__
    
    #include "XWidget.h"
    
    class CMapDialog;
    class CXTimer;
    class CTowerDialog;
    
    class CControlLayer : public CXWidget
    {
    public:
        enum ControlLayerId
        {
            _IDD_ControLyaer = 102,
        };
    public:
        CControlLayer();
        ~CControlLayer();
    
        virtual bool init();
    
        virtual bool onMouseDown(CCTouch *pTouch, CCEvent *pEvent);
        virtual void onMouseUp(CCTouch *pTouch, CCEvent *pEvent);
        virtual    void onMouseMove(CCTouch *pTouch, CCEvent *pEvent);
    
        void onTimerEnd(CCObject* obj);
    private:
        int                    m_nTimerCount;
        bool                m_bDblclick;
    
        CCPoint                m_tMoveDist;
        CMapDialog*            m_pMapDlg;
        CXTimer*            m_pTimer;
        CTowerDialog*        m_pTowerDlg;
    
    };
    
    #endif
    #include "ControlLayer.h"
    #include "WidgetMgr.h"
    #include "GameLogic.h"
    #include "MapDialog.h"
    #include "XTimer.h"
    #include "Dispatcher.h"
    
    CControlLayer::CControlLayer()
    {
        m_tMoveDist.setPoint(0, 0);
        m_pMapDlg = NULL;
        m_bDblclick = false;
        m_pTimer = NULL;
        m_pTowerDlg = NULL;
    }
    
    
    CControlLayer::~CControlLayer()
    {
    
    }
    
    bool CControlLayer::init()
    {
        CWidgetMgr::getInstance()->loadWidget(this, _IDD_ControLyaer);
        CWidgetMgr::getInstance()->addWnd(this);
    
        this->setTouchEnabled(true);
    
        m_pTimer = new CXTimer();
        m_pTimer->init(3, 0.1f);
        m_pTimer->autorelease();
        this->addChild(m_pTimer);
        m_pTimer->setTimerEndListener(this, callfuncO_selector(CControlLayer::onTimerEnd));
    
        return true;
    }
    
    bool CControlLayer::onMouseDown( CCTouch *pTouch, CCEvent *pEvent )
    {
        CCPoint tMouseDownPos = pTouch->getLocationInView();
        tMouseDownPos = CCDirector::sharedDirector()->convertToGL(tMouseDownPos);
        tMouseDownPos = this->convertToNodeSpace(tMouseDownPos);
    
    
        CDispatcher::getInstance()->onMoveDown(tMouseDownPos);
    
    
        if (m_bDblclick) 
        {//双击
            if (1.0f == CDispatcher::getInstance()->getWorldScale())
            {
                CDispatcher::getInstance()->setWorldScale(1.5f);
            }
            else
            {
                CDispatcher::getInstance()->setWorldScale(1.0f);
            }
        }
    
    
        if (m_pTimer)
        {
            m_pTimer->setCount(3);
            m_pTimer->start();
            m_bDblclick = true;
        }
    
        return true;
    }
    
    void CControlLayer::onMouseUp( CCTouch *pTouch, CCEvent *pEvent )
    {
        CCPoint tMouseUpPos = pTouch->getLocationInView();
        tMouseUpPos = CCDirector::sharedDirector()->convertToGL(tMouseUpPos);
        tMouseUpPos = this->convertToNodeSpace(tMouseUpPos);
    
    
    }
    
    void CControlLayer::onMouseMove( CCTouch *pTouch, CCEvent *pEvent )
    {    
        CCPoint moveCurPos = pTouch->getLocationInView();    
        moveCurPos = CCDirector::sharedDirector()->convertToGL(moveCurPos);
        moveCurPos = this->convertToNodeSpace(moveCurPos);
        CCPoint movePrevPos = pTouch->getPreviousLocationInView();
        movePrevPos = CCDirector::sharedDirector()->convertToGL(movePrevPos);
        movePrevPos = this->convertToNodeSpace(movePrevPos);
    
        m_tMoveDist.setPoint(moveCurPos.x - movePrevPos.x, moveCurPos.y - movePrevPos.y);    
    
        CDispatcher::getInstance()->onMoveDist(m_tMoveDist);
    
    }
    
    void CControlLayer::onTimerEnd( CCObject* obj )
    {
        m_bDblclick = false;
    }
  • 相关阅读:
    sqlplus 汉字乱码问题的解决
    Windows下RMAN备份脚本
    Oracle sqlplus prelim 参数介绍
    Oracle BBED 工具 说明
    Oracle BBED 工具 说明
    Oracle DBV 工具 说明
    Windows下RMAN备份脚本
    Oracle corrupt block(坏块) 详解
    Oracle Rowid 介绍
    Oracle sqlplus 常用命令总结
  • 原文地址:https://www.cnblogs.com/newlist/p/3165231.html
Copyright © 2020-2023  润新知