Cocos2dx项目启程二 之 封装属于我的按钮类
2013-09-03 17:20
169 查看
不知道为什么,很讨厌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 tolua ++ 创建项目
- cocos2dx-3.8.1在Windows--vs2013上的项目创建
- cocos2dx项目在android平台第一次安装的一个奇怪的bug
- Cocos2dx 3.2的使用及其Android项目移植
- cocos2dx项目打包apk(一)
- 安卓项目快速开发框架, MVP + Retrofit + RxJava,Activity 和 Fragment 结合 MVP 模式的完整封装,大大减少代码量
- iOS项目技巧+封装过程
- 82-83_游戏项目_使用继承封装MyFrame作为以后窗口类共同父类
- Cocos2dx 2.12版本升级之后,如何新建项目
- 一个项目如何请求访问,另一个封装好的接口项目的数据
- React项目配置2(自己封装Ajax)
- Bullet(Cocos2dx)之封装PhysicsWorld3D
- cocos2dx学习笔记一:windows下创建工程方法和运行项目方法
- 用封装类来合理的设计PHP项目--谈PHP项目中类的封装
- cocos2dx 3.0rc怎样创建项目
- cocos2dx项目To安卓android平台 移植成功后记录一笔