cocos2d-x实现滑屏
来源:未知 责任编辑:责任编辑 发表时间:2013-11-26 22:13 点击:次
像植物大战僵尸,保卫萝卜这些游戏,刚开始时就有一个滑屏选关卡的功能,这个效果非常好,越来越多的手机游戏使用这种方法进行关卡选择,想到以后,我也会经常用到这个功能,于是,就将这个功能封装起来,大家一起来看看代码吧
p>
p>[cpp]
p>#ifndef _SLIDING_LAYER_H_
p>#define _SLIDING_LAYER_H_
p>
p>//////////////////////////////////////////////////////////////////////////
p>class CSlidingLayer : public CCLayer
p>{
p>public:
p> CSlidingLayer();
p> ~CSlidingLayer();
p>
p>public:
p> virtual bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent); // 手指触碰时
p> virtual void ccTouchMoved(CCTouch *pTouches, CCEvent *pEvent); // 手指移动时
p> virtual void ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent); // 手指放开时
p>
p>public:
p> void AddSprite(CCSprite* pSprite); // 添加用于滑屏显示的精灵
p> bool IsMoveLayer() { return m_bMoveLayer; } // 用于判断是否手指滑动了
p>
p>private:
p> CCPoint m_ptTouchDown; // 首次按下的触摸点
p>
p> typedef vector<CCSprite*> VEC_SPRITE;
p> VEC_SPRITE m_vecSprite; // 精灵集合
p> int m_nCurSprite; // 当前显示的精灵
p>
p> bool m_bMoveLayer; // 移动层
p>};
p>#endif
p>
p>[cpp]
p>#include "stdafx.h"
p>#include "SlidingLayer.h"
p>
p>const int NEXT_SPRITE_SHOW = 50; // 触摸点与滑动停止时点距离,如果超过这个值,我们认为是滑屏,没有超过则认为误操作,不做滑屏处理
p>//////////////////////////////////////////////////////////////////////////
p>CSlidingLayer::CSlidingLayer()
p>{
p> m_ptTouchDown.setPoint(-1, -1);
p> m_nCurSprite = 0;
p> m_bMoveLayer = false;
p>}
p>
p>//////////////////////////////////////////////////////////////////////////
p>CSlidingLayer::~CSlidingLayer()
p>{
p>
p>}
p>
p>//////////////////////////////////////////////////////////////////////////
p>bool CSlidingLayer::ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent)
p>{
p> m_ptTouchDown = pTouch->getLocation(); // 获取触摸点
p> m_bMoveLayer = false;
p> return true;
p>}
p>
p>//////////////////////////////////////////////////////////////////////////
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>