cocos2dx 3.x(Button传统按钮)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cocos2dx 3.x(Button传统按钮)相关的知识,希望对你有一定的参考价值。

 1 //
 2 //  ATTLoagingScene.hpp
 3 //  ATT
 4 //
 5 //  Created by work on 16/10/13.
 6 //
 7 //
 8 
 9 #ifndef ATTLoagingScene_hpp
10 #define ATTLoagingScene_hpp
11 
12 #include <stdio.h>
13 #include "cocos2d.h"
14 #include "cocos-ext.h"//使用按钮事件,必须要需要的头文件
15 USING_NS_CC_EXT;//使用按钮事件,必须要需要的命名空间
16 
17 class ATTLoagingScene : public cocos2d::Layer
18 
19 {
20 
21    
22 private:
23 
24     cocos2d::ui::Button * m_soundOnButton;//私有的成员变量
25 
26     cocos2d::ui::Button * m_btnPlus;
27 
28       
29 
30 public:
31 
32     static cocos2d::Scene* createScene();    
33 
34     virtual bool init();
35 
36 //声明点击事件
37 
38     void menuCloseCallback(Ref *ref,cocos2d::extension::Control::EventType event);//对原来的关闭事件进行改造,增加参数,让其支持cccontrol_selector
39 
40     // implement the "static create()" method manually
41 
42     CREATE_FUNC(ATTLoagingScene);
43 
44 };
45 
46  
47 
48 #endif /* ATTLoagingScene_hpp */

 

 

 1 //
 2 //  ATTLoagingScene.cpp
 3 //  ATT
 4 //
 5 //  Created by work on 16/10/13.
 6 //
 7 //
 8 
 9 #include "ATTLoagingScene.hpp"
10 #include "SimpleAudioEngine.h"
11 #include "ATTGameScene.hpp"
12 USING_NS_CC;
13 
14 Scene* ATTLoagingScene::createScene()
15 {
16     // ‘scene‘ is an autorelease object
17     auto scene = Scene::create();
18     
19     // ‘layer‘ is an autorelease object
20     auto layer = ATTLoagingScene::create();
21     
22     // add layer as a child to scene
23     scene->addChild(layer);
24     
25     // return the scene
26     return scene;
27 }
28 
29 
30 bool ATTLoagingScene::init()
31 {
32     
33     
34     if ( !Layer::init() )
35     {
36         return false;
37     }
38 
39 
40 auto soundbg=cocos2d::ui::Scale9Sprite::createWithSpriteFrameName("gobang_option_sound_off.png");
41     soundbg->setScale(0.667);
42     m_soundOnButton=ControlButton::create(soundbg);
43     m_soundOnButton->setPreferredSize(cocos2d::Size(162,58));
44     m_soundOnButton->setPosition(getPoint(1136, 627));
45     m_soundOnButton->addTargetWithActionForControlEvents(this, cccontrol_selector(GoBangScene::buttonSoundOnCallBack), Control::EventType::TOUCH_UP_INSIDE);
46     this->addChild(m_soundOnButton,2);
47     m_soundOnButton->setVisible(false);//设置为隐藏,true为可见。
48     m_soundOnButton->setEnabled(false);//设置为禁用,true为可用。
49     m_soundOnButton->setOpacity(200);//透明度 setOpacity 透明度 0~255(取值范围),255不透明,0全透明 
50 
61    
62 
63 //
64 
65     return true;
66 }
67 
68 // 实现点击方法
69 #pragma mark - ATTGameScene::optionCB(设置按钮)
70 void ATTGameScene::buttonSoundOnCallBack(Ref *pSender, cocos2d::ui::Widget::TouchEventType type)
71 {
72     /* 
73      *判断当前点击类型(只响应一次,松开时生效)
74      */
75     if (type != cocos2d::ui::Widget::TouchEventType::ENDED)
76     {
77         return;
78     }
79     // 直接取反 (判断当前节点是否被隐藏,若隐藏直接取反)
80     //m_optionNode->setVisible(!m_optionNode->isVisible());
81 
82 }

 

以上是关于cocos2dx 3.x(Button传统按钮)的主要内容,如果未能解决你的问题,请参考以下文章

cocos2dx 3.0(多个按钮button执行同一事件的区分)

cocos2dx 3.x tolua 分析

实训三(cocos2dx 3.x 打包apk)

cocos2dx 3.x 触摸事件

lua 中处理cocos2dx 的button 事件

cocos2dx 3.x 集成protobuf