cocos2d-x3.2 使用开关控制按钮 ControlSwitch
ContolSwitch
控件起到了一个开关的作用类似于现实生活中的开关,直接上代码:
.h文件
//
// SwitchBtnScene.h
// LSWGameIOS
//
// Created by lsw on 14-10-17.
//
// #ifndef LSWGameIOS_SwitchBtnScene_h
#define LSWGameIOS_SwitchBtnScene_h #include "cocos2d.h"
#include "cocos-ext.h" class SwitchBtnScene : public cocos2d::Layer
{
public:
static cocos2d::Scene *createScene();
bool init();
CREATE_FUNC(SwitchBtnScene); void valueChanged(cocos2d::Ref *sender, cocos2d::extension::Control::EventType evt);
}; #endif
.cpp文件
//
// SwitchBtnScene.cpp
// LSWGameIOS
//
// Created by lsw on 14-10-17.
//
// #include "SwitchBtnScene.h"
#include "GUI/CCControlExtension/CCControlSwitch.h" USING_NS_CC;
USING_NS_CC_EXT; Scene *SwitchBtnScene::createScene()
{
auto scene = Scene::create();
auto layer = SwitchBtnScene::create();
scene->addChild(layer);
return scene;
} bool SwitchBtnScene::init()
{
if (!Layer::init())
{
return false;
} auto winSize = Director::getInstance()->getWinSize();
auto onLabel = Label::createWithSystemFont("on", "Arail", 20);
auto offLabel = Label::createWithSystemFont("off", "Arail", 20);
onLabel->setColor(Color3B(0, 0, 0));
offLabel->setColor(Color3B(0, 0, 0)); auto maskSprite = Sprite::create("switchButton/switchGreen.png");
auto onSprite = Sprite::create("switchButton/switchGreen.png");
auto offSprite = Sprite::create("switchButton/switchRed.png");
auto thumbSprite = Sprite::create("switchButton/switchBtn.png");
//设置按钮的截取范围 开关图片和显示文字以及按钮
ControlSwitch *switchBtn = ControlSwitch::create(maskSprite, onSprite, offSprite, thumbSprite, onLabel, offLabel);
addChild(switchBtn);
switchBtn->setPosition(Vec2(winSize.width/2, winSize.height/2));
//设置监听事件
switchBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(SwitchBtnScene::valueChanged), Control::EventType::VALUE_CHANGED); return true;
} void SwitchBtnScene::valueChanged(Ref *sender, Control::EventType evt)
{
if (evt == Control::EventType::VALUE_CHANGED)
{
ControlSwitch *btn = (ControlSwitch *)sender;
if (btn->isOn())
{
CCLOG("btn is on");
}
else
{
CCLOG("btn is off");
}
}
else
{
CCLOG("is other state");
}
}
cocos2d-x3.2 使用开关控制按钮 ControlSwitch的更多相关文章
- element UI实现表格中添加开关控制按钮
我使用的是element ui V1.4.3 如下图是我要实现的效果: <template> <div> <el-button type="text" ...
- Kali-Linux-美化与优化
照理说,linux的桌面是不应当存在在这个世界上的,作为一个linux用户,一味捣鼓桌面显得hin-不专业.但是,虚拟机要用到,浏览器要用到--更何况,自己的老婆能不打扮一下么? update:201 ...
- Cocos2d—X游戏开发之CCToggle(菜单标签切换)CCControlSwitch(开关切换)
Cocos2d—X游戏开发之CCToggle(菜单标签切换) 首先继承子CCMenu,是菜单标签中的一种.‘ class CC_DLL CCMenuItemToggle : public CCMenu ...
- cocos2d-x3.0创建第一个jsb游戏
第一步: 最新的cocos2d-x.下载地址https://github.com/cocos2d/cocos2d-x github上最新的引擎,值得注意的是官网上发布的引擎是稳定版.选择哪种就看个人喜 ...
- 如何优化cocos2d程序的内存使用和程序大小
在我完成第一个游戏项目的时候,我深切地意识到"使用cocos2d来制作游戏的开发者们,他们大多会被cocos2d的内存问题所困扰".而我刚开始接触cocos2d的时候,社区里面的人 ...
- POJ 1681 (开关问题+高斯消元法)
题目链接: http://poj.org/problem?id=1681 题目大意:一堆格子,或白或黄.每次可以把一个改变一个格子颜色,其上下左右四个格子颜色也改变.问最后使格子全部变黄,最少需要改变 ...
- POJ 1222 (开关问题+高斯消元法)
题目链接: http://poj.org/problem?id=1222 题目大意:一堆开关,或开或关.每个开关按下后,周围4个方向开关反转.问使最后所有开关都关闭的,开关按法.0表示不按,1表示按. ...
- (译)如何优化cocos2d程序的内存使用和程序大小:第二部分(完)
前言:从上周发布教程的微博反应情况来看,cocos2der们对于游戏的内存问题还是非常关心的.本文是上一篇博文的续,旨在教大家如何减少cocos2d程序的大小. 全文如下: 减少你的程序的大小 把纹理 ...
- 【Cocos2d入门教程四】Cocos2d-x菜单篇
游戏世界多姿多彩,无论多靓丽的游戏,多耐玩的游戏,在与游戏用户交互上的往往是菜单. 上一章我们已经大概了解了导演.节点.层.精灵.这一章以菜单为主题. 菜单(Menu)包含以下内容: 1.精灵菜单项( ...
随机推荐
- URAL1049. Brave Balloonists
1049 求约数的个数 质因子数的个数+1相乘 #include <iostream> #include<cstdio> #include<cstring> #in ...
- 从svn检出的项目如何编译
从svn检出的项目如何编译 svn检查项目后,不能构建编译 工程右键,bulid path -->No actions available 问题:svn检查项目后,发现没有class文件 ...
- Java编程思想(11~17)
[注:此博客旨在从<Java编程思想>这本书的目录结构上来检验自己的Java基础知识,只为笔记之用] 第十一章 持有对象 11.1 泛型和类型安全的容器>eg: List<St ...
- ubuntu 12.04上安装OpenERP 7的一次记录
登陆ssh, 先更新系统: sudo apt-get update && sudo apt-get dist-upgrade 接着再为openerp运行创建一个系统用户,用户名就叫op ...
- Swift 2.0 : 'enumerate' is unavailable: call the 'enumerate()' method on the sequence
Swift 2.0 : 'enumerate' is unavailable: call the 'enumerate()' method on the sequence 如下代码: for (ind ...
- .net remoting 客户端与服务端绑定事件,一部电脑当服务器,另一部当客户端,发布后没法接收远程错误信息。
可以是用下面代码抛出远程错误,客户端和服务端都要设置,因为服务端事件回调时角色变成了远程客户端了. RemotingConfiguration.CustomErrorsMode = CustomErr ...
- HDU 5375 Gray code 格雷码(水题)
题意:给一个二进制数(包含3种符号:'0' '1' '?' ,问号可随意 ),要求将其转成格雷码,给一个序列a,若转成的格雷码第i位为1,则得分+a[i].求填充问号使得得分最多. 思路:如果了 ...
- cURL: PHP并发处理方式
function classic_curl($urls, $delay) { $queue = curl_multi_init(); $map = array(); foreach ($urls as ...
- 常见SQLException异常
ORA-00904: invalid column name 无效列名 ORA-00942: table or view does not exist 表或者视图不存在 ORA-01400: c ...
- TCP握手
1.TCP的三次握手四次挥手 第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认. 第二 ...