cocos2d-x2.1 GUI控件的使用

在使用extensions时都需要额外指定include、lib,例如笔者的VS11环境,右键项目 属性-->配置属性-->VC++目录在包含目录中添加 F:\cocos2d-2.1beta3-x-2.1.1\extensions;以及在链接器-->命令行添加 libextensions.lib或者使用代码添加
[cpp]  view plain copy
  1. #pragma comment(lib, "libextensions.lib")  

进入程序中需要将使用到的头文件写入,可以直接写#include “cocos-ext.h”(它包含了extensions的所有头文件引用),然后添加命名空间声明:USING_NS_CC_EXT;


对于各种GUI控件可以在Samples的TestCpp的ExtensionsTest\ControlExtensionTest查看学习


下面这个代码参考了CCControlSwitchTest

[cpp]  view plain copy
  1. #pragma once  
  2.   
  3. #include "cocos2d.h"  
  4. #include "cocos-ext.h"  
  5.   
  6. #pragma comment(lib, "libextensions.lib")  
  7.   
  8. USING_NS_CC_EXT;  
  9.   
  10. class HelpLayer : public cocos2d::CCLayer  
  11. {  
  12. public:  
  13.     HelpLayer(void);  
  14.     ~HelpLayer(void);  
  15.   
  16.     bool init();  
  17.     CREATE_FUNC(HelpLayer);  
  18.   
  19.     cocos2d::CCLabelTTF *m_valueLabel;  
  20.     void valueChanged(cocos2d::CCObject *sender, CCControlEvent controlEvent);  
  21. };  

[cpp]  view plain copy
  1. #include "HelpLayer.h"  
  2.   
  3. using namespace cocos2d;  
  4.   
  5. HelpLayer::HelpLayer(void)  
  6. {  
  7.     m_valueLabel = NULL;  
  8. }  
  9.   
  10. HelpLayer::~HelpLayer(void)  
  11. {  
  12.     CC_SAFE_RELEASE(m_valueLabel);  
  13. }  
  14.   
  15. bool HelpLayer::init()  
  16. {  
  17.     bool bRet = false;  
  18.     do   
  19.     {  
  20.         CC_BREAK_IF(!CCLayer::init());  
  21.   
  22.         CCSize winSize = CCDirector::sharedDirector()->getWinSize();  
  23.   
  24.         // switch controler  
  25.         CCControlSwitch *switchControl = CCControlSwitch::create  
  26.             (  
  27.                 CCSprite::create("extensions/switch-mask.png"),  
  28.                 CCSprite::create("extensions/switch-on.png"),  
  29.                 CCSprite::create("extensions/switch-off.png"),  
  30.                 CCSprite::create("extensions/switch-thumb.png"),  
  31.                 CCLabelTTF::create("on""Arial-BoldMT", 16),  
  32.                 CCLabelTTF::create("off""Arial-BoldMT", 16)  
  33.             );  
  34.         switchControl->setOn(true);  
  35.         switchControl->setPosition(ccp(winSize.width / 2 + 50, winSize.height / 2));  
  36.         this->addChild(switchControl);  
  37.   
  38.         switchControl->addTargetWithActionForControlEvents(this, cccontrol_selector(HelpLayer::valueChanged), CCControlEventValueChanged);  
  39.   
  40.         // button  
  41.         CCScale9Sprite *background = CCScale9Sprite::create("extensions/buttonBackground.png");  
  42.         background->setContentSize(CCSizeMake(80, 50));  
  43.         background->setPosition(ccp(winSize.width / 2 - 100, winSize.height / 2));  
  44.         this->addChild(background);  
  45.   
  46.         m_valueLabel = CCLabelTTF::create("ON""Marker Felt", 30);  
  47.         m_valueLabel->retain();  
  48.         m_valueLabel->setPosition(background->getPosition());  
  49.         this->addChild(m_valueLabel);  
  50.   
  51.         bRet = true;  
  52.     } while (0);  
  53.   
  54.     return bRet;  
  55. }  
  56.   
  57. void HelpLayer::valueChanged(cocos2d::CCObject *sender, CCControlEvent controlEvent)  
  58. {  
  59.     CCControlSwitch *pSwitch = (CCControlSwitch*)sender;  
  60.     if (pSwitch->isOn())  
  61.     {  
  62.         m_valueLabel->setString("ON");  
  63.     }  
  64.     else  
  65.     {  
  66.         m_valueLabel->setString("OFF");  
  67.     }  
  68. }  
程序运行如下:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值