cocos2d-x GUI控件的使用(cocos2d-x2.1)

news/2024/7/7 16:47:23

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

#pragma comment(lib, "libextensions.lib")

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


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


下面这个代码参考了CCControlSwitchTest

#pragma once

#include "cocos2d.h"
#include "cocos-ext.h"

#pragma comment(lib, "libextensions.lib")

USING_NS_CC_EXT;

class HelpLayer : public cocos2d::CCLayer
{
public:
	HelpLayer(void);
	~HelpLayer(void);

	bool init();
	CREATE_FUNC(HelpLayer);

	cocos2d::CCLabelTTF *m_valueLabel;
	void valueChanged(cocos2d::CCObject *sender, CCControlEvent controlEvent);
};

#include "HelpLayer.h"

using namespace cocos2d;

HelpLayer::HelpLayer(void)
{
	m_valueLabel = NULL;
}

HelpLayer::~HelpLayer(void)
{
	CC_SAFE_RELEASE(m_valueLabel);
}

bool HelpLayer::init()
{
	bool bRet = false;
	do 
	{
		CC_BREAK_IF(!CCLayer::init());

		CCSize winSize = CCDirector::sharedDirector()->getWinSize();

		// switch controler
		CCControlSwitch *switchControl = CCControlSwitch::create
			(
				CCSprite::create("extensions/switch-mask.png"),
				CCSprite::create("extensions/switch-on.png"),
				CCSprite::create("extensions/switch-off.png"),
				CCSprite::create("extensions/switch-thumb.png"),
				CCLabelTTF::create("on", "Arial-BoldMT", 16),
				CCLabelTTF::create("off", "Arial-BoldMT", 16)
			);
		switchControl->setOn(true);
		switchControl->setPosition(ccp(winSize.width / 2 + 50, winSize.height / 2));
		this->addChild(switchControl);

		switchControl->addTargetWithActionForControlEvents(this, cccontrol_selector(HelpLayer::valueChanged), CCControlEventValueChanged);

		// button
		CCScale9Sprite *background = CCScale9Sprite::create("extensions/buttonBackground.png");
		background->setContentSize(CCSizeMake(80, 50));
		background->setPosition(ccp(winSize.width / 2 - 100, winSize.height / 2));
		this->addChild(background);

		m_valueLabel = CCLabelTTF::create("ON", "Marker Felt", 30);
		m_valueLabel->retain();
		m_valueLabel->setPosition(background->getPosition());
		this->addChild(m_valueLabel);

		bRet = true;
	} while (0);

	return bRet;
}

void HelpLayer::valueChanged(cocos2d::CCObject *sender, CCControlEvent controlEvent)
{
	CCControlSwitch *pSwitch = (CCControlSwitch*)sender;
	if (pSwitch->isOn())
	{
		m_valueLabel->setString("ON");
	}
	else
	{
		m_valueLabel->setString("OFF");
	}
}
程序运行如下:



http://www.niftyadmin.cn/n/4364462.html

相关文章

用正则表达式突出显示字符串中查询到的单词的函数

用正则表达式突出显示字符串中查询到的单词的函数 Function BoldWord(strContent,word)dim objRegExpSet objRegExpnew RegExpobjRegExp.IgnoreCase trueobjRegExp.GlobalTrue objRegExp.Pattern"(" & word & ")"strContentobjRegExp.Replace(st…

box2d弹球 cocos2d-x重力感应(cocos2d-x2.1)

本博客例子参考:raywenderlich 我将上面obj-c的翻译成了C,改动很少。首先在win32下新建新工程 修改HelloWorldScene.h #ifndef __HELLOWORLD_SCENE_H__ #define __HELLOWORLD_SCENE_H__#include "cocos2d.h"#include "Box2D/Box2D.h&qu…

自定义控件的拖动

自定义控件的拖动 //添加事件 this.MouseUp new System.Windows.Forms.MouseEventHandler(this.DragEnd); this.MouseMove new System.Windows.Forms.MouseEventHandler(this.DragMove); this.MouseDown new System.Windows.Forms.MouseEventHandler(this.DragBegin);  …

做ASP小偷时.经常需要用到的函数.

做ASP小偷时.经常需要用到的函数. 采集页面:Function GetPage(url) dim SendData,Retrieval Set Retrieval CreateObject("Microsoft.XMLHTTP") With Retrieval .Open "post", url, False .setRequestHeader "Conten…

Box2D Breakout游戏(cocos2d-x2.1)

本篇博客的例子来自:RAYWENDERLICH Breakout砖块游戏 我根据它上面的Obj-C代码进行移植成cocos2d-x2.1的代码,稍有修改。 可以在这里下载,供新手学习参考,代码粗糙,如有错误欢迎批评指正:) 效…

112 的安装_家用太空能水器选购经验及安装注意事项

热水器的种类一般分为:电热水器、燃气热水器、太阳能热水器、太空能热水器、空气能热水器。今天我来给大家介绍一下在选购太空能热水器需要注意的地方,供大家参考一下。 一、选择太空能热水器的原因为什么选择太空能热水器,我的理由非常简单&…

matlab使用决策树实现西瓜数据集分类_机器学习——十大数据挖掘之一的决策树CART算法...

今天是机器学习专题的第23篇文章,我们今天分享的内容是十大数据挖掘算法之一的CART算法。CART算法全称是Classification and regression tree,也就是分类回归树的意思。和之前介绍的ID3和C4.5一样,CART算法同样是决策树模型的一种经典的实现。…

图像gan生成平衡代码_别人家的高中生:入大学前,Ta详细梳理了GAN的发展脉络...

有人「高考」完还在学习,说出来你可能不信。机器之心报道,参与:张倩、一鸣。昨天,reddit 上出现了一个关于梳理 GAN 发展脉络的博客,作者在博客中详细梳理了过去几年的 GAN 发展历程,包含众多 SOTA 论文及其…