Cocos2dx项目启程二 之 封装属于我的按钮类
2013-09-03 19:26
183 查看
不知道为什么,很讨厌cocos2dx的 各菜单类,比如按钮:如果一张图片上就已经有按钮的几个状态了,我还是要创建多张资源图片,
最起码要指定这张图片上哪块区域是这个普通状态,哪块区域是那个选中状态。。。。于是,在这里,做了点加工,在一张图片上
如果有几个按钮状态,来实现多种按钮状态:在用我自己的按钮类的话只只需要 1 个函数就可以实现:
最起码要指定这张图片上哪块区域是这个普通状态,哪块区域是那个选中状态。。。。于是,在这里,做了点加工,在一张图片上
如果有几个按钮状态,来实现多种按钮状态:在用我自己的按钮类的话只只需要 1 个函数就可以实现:
CMySpriteButton *pGameMainMenuBt= CMySpriteButton::create(“bt.png”,DIR_VERTICAL,2,this, menu_selector(SceneManger::menuCallback));//
#ifndef MY_SPRITE_BUTTON_H #define MY_SPRITE_BUTTON_H #include "common.h" #include "MySprite.h" #define MYBUTTON_ZORDER 3 //按钮状态枚举 enum eButtonState { //普通状态 STATE_NORMAL, //按下 STATE_DOWN, //已选中状态 STATE_SELECTED, //禁用该按钮 STATE_DISABLE, // STATE_MAX }; //资源切割方向 enum eImageDir { //水平 DIR_HORIZONTAL, //垂直 DIR_VERTICAL }; //@单图切割换帧 按钮 class CMySpriteButton : public CCLayer { private: //精灵资源 CMySprite m_sprImage; //调用 CCNode* m_pTarget; //回调 SEL_MenuHandler m_pfnCallBack; private: CMySpriteButton(void); ~CMySpriteButton(void); //接口 public: //create static CMySpriteButton* create( const char* pszResourceName, eImageDir eDir, unsigned char byStates, CCNode* pTarget, SEL_MenuHandler pfnCallBack ); void setPositionX( float x ); void setPositionY( float y ); void setPosition(float x, float y); float getPositionY(); float getPositionX(); cocos2d::CCPoint& getPosition(); bool init( const char* pszResourceName, eImageDir eDir, unsigned char byStates, CCNode* pTarget, SEL_MenuHandler pfnCallBack ); void SetState(eButtonState eState); //重载 protected: void onEnter(); bool ccTouchBegan( CCTouch *pTouch, CCEvent *pEvent ); void ccTouchEnded( CCTouch *pTouch, CCEvent *pEvent ); void ccTouchesBegan( CCSet *pTouches, CCEvent *pEvent ); void ccTouchesEnded( CCSet *pTouches, CCEvent *pEvent ); }; #endif
相关文章推荐
- Cocos2dx项目启程二 之 封装属于我的按钮类
- Cocos2dx项目启程一 之 封装属于我的精灵类
- Cocos2dx项目启程一 之 封装属于我的精灵类
- Cocos2dx项目启程三 之 架构项目之切换场景
- cocos2DX-lua 点击事件封装
- cocos2dx 3.2+ 项目创建与问题总汇
- 【angular5项目积累总结】http请求服务封装
- Cocos2dx tolua ++ 创建项目
- Cocos2dx 3.2的使用及其Android项目移植
- cocos2dx项目打包apk(一)
- cocos2dx 2.x新建项目
- 封装一个在小项目中使用的volley(通俗简便、方便灵活)
- Cocos2dx 2.12版本升级之后,如何新建项目
- Bullet(Cocos2dx)之封装PhysicsWorld3D
- cocos2dx学习笔记一:windows下创建工程方法和运行项目方法
- vue项目用js封装的md5
- vs2015打开cocos2dx-3.14自带项目,代码显示波浪线,但没编译错误
- 用封装类来合理的设计PHP项目--谈PHP项目中类的封装
- cocos2dx项目To安卓android平台 移植成功后记录一笔
- 欧洲主要监管机构称ICO可能属于衍生品交易项目