[COCOS2D] Cocos2d-x使用MenuItemToggle做开关按钮步骤详解

[复制链接]
星空 发表于 2019-1-13 10:56:45 | 显示全部楼层 |阅读模式
在手机游戏中,一般都会有类似设置开关这样的按钮,当按钮显示“On”时,按下去功能会被改变功能,并且按钮显示改变为“Off”。在Cocos2d-x中,用CCMenuItemToggle实现这种开关按钮。接下来我们来学习一下它的使用方法。 3 `  T1 n0 I! ]; I, e
首先新建一个项目。命名为“ToggleMenuTest”,编译运行起来,编译的速度和电脑配置由关系。, x$ }. M6 b0 V  x+ g

Cocos2d-x使用MenuItemToggle做开关按钮步骤详解

Cocos2d-x使用MenuItemToggle做开关按钮步骤详解

0 X4 \% p( _! m) b! @7 i; |把我们的项目编译运行起来,然后我们创建一个方法来实现开关的功能。在HelloWorldScene.h里面新建方法。 + b9 \# v. X, Y, s( ]
void menuONorOFFCallback(cocos2d::Ref* pSender);
: D2 j6 _" g- F" x) A, B& p

Cocos2d-x使用MenuItemToggle做开关按钮步骤详解

Cocos2d-x使用MenuItemToggle做开关按钮步骤详解
$ X6 x' L: q7 G1 n' Z4 }
然后在HelloWorldScene.cpp里实现,这里我们先不写具体的函数功能。然后我们来修改init初始化的代码。
6 I, A& b0 @, V. O4 O( \创建ON和OFF开关按钮,创建MenuItemToggle菜单并实现回调函数。。 / Q9 p2 k, Y7 l6 p6 h% h" J
插入的代码段:
- L0 g- d% E9 W+ f' O; ` auto start = MenuItemFont::create("ON");  //显示为on
: D3 o+ s$ i( G! ~* k) |. e/ b, Aauto stop = MenuItemFont::create("OFF");  //显示为off) L( C  q3 ^  P  l$ D
auto toggle = MenuItemToggle::createWithCallback(
% c# O- y: ?2 K/ B9 T0 ]0 {3 f        CC_CALLBACK_1(HelloWorld::menuONorOFFCallback,this), & }4 B2 |- [2 `% A1 R0 d  }
        start, 4 {% }5 D: T2 Y& u( m" m" q1 \% U
        stop,
2 v2 E$ o" ?2 [$ C        NULL);  
8 N3 e5 I0 ~# w" ?, o8 _4 @" x& ctoggle->setPosition(Vec2(visibleSize.width/2, visibleSize.height/2));  //设置坐标在屏幕居中
) h$ E  x( @& H$ h$ L. \auto menu = Menu::create(toggle,NULL);  
: j/ [# i" n! `- z; omenu->setPosition(Point::ZERO);  ; c% c! J: ^0 F  f: s7 _  K$ |) k
addChild(menu); $ v) f" a. Q8 U" }& B

Cocos2d-x使用MenuItemToggle做开关按钮步骤详解

Cocos2d-x使用MenuItemToggle做开关按钮步骤详解
& D4 a9 \# k2 z' h. L. t# H6 S( L
下面我们来运行看看效果,来张演示图给大家看看。 0 w5 D9 k' N# V

Cocos2d-x使用MenuItemToggle做开关按钮步骤详解

Cocos2d-x使用MenuItemToggle做开关按钮步骤详解

# O1 U. s* N, a4 N
哎...今天够累的,签到来了游戏源码下载...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则