热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

功夫小子实践开发-游戏设置功能的实现

设置功能场景的ui效果图:可以看出这个功能场景的控件就三种类型,一个是菜单按钮——关闭按钮和保存按钮以及音乐和音效的开关按钮。而是精灵图片——背景图片等,三是滑动条的控件。因此此处我们需要学习的两个

设置功能场景的ui效果图: 

设置场景的UI效果图
可以看出这个功能场景的控件就三种类型,一个是菜单按钮——关闭按钮和保存按钮以及音乐和音效的开关按钮。而是精灵图片——背景图片等,三是滑动条的控件。因此此处我们需要学习的两个全新的控件就是滑动条的控件和开关按钮的控件,他们对应的Cocos2d-x的控件是:滑动条:ControlSlider,开关按钮MenuItemToggle。

0ControlSlider的用法

滑动条控件的组成分为三部分——互动的背景图,滑块,划过区域的图。看下他的关键源码:

ControlSlider.cpp
/*
继承自Control控件类,这个类有三个子类——ControlSlider(滑动条),ControlButton(按钮类,这个在后面会用到),ControlSwitch(开关类)。Control类为它的子类提供了一系列的触摸响应绑定的函数。具体参考Control的源码。
*/

class ControlSlider: public Control
{
public:
/** 通过一个背景图片,划过区域,滑块图片名称创建一个滑动条。
* Creates slider with a background filename, a progress filename and a
* thumb image filename.
*/

static ControlSlider* create(const char* bgFile, const char* progressFile, const char* thumbFile);

/** 通过一个背景图片精灵,划过区域精灵,滑块图片精灵创建一个滑动条
* Creates a slider with a given background sprite and a progress bar and a
* thumb item.
*
* @see initWithSprites
*/

static ControlSlider* create(Sprite * backgroundSprite, Sprite* pogressSprite, Sprite* thumbSprite);
// 以上两个方法仅仅是参数不同,但是第一个其实在方法内部也是使用的精灵实现的

/**
* Creates slider with a background filename, a progress filename, a thumb
* and a selected thumb image filename.
*/

static ControlSlider* create(const char* bgFile, const char* progressFile, const char* thumbFile,
const char* selectedThumbSpriteFile);

/** 多了一个选中的滑块的图片,下面方法一样
* Creates a slider with a given background sprite and a progress bar, a thumb
* and a selected thumb .
*
* @see initWithSprites
*/

static ControlSlider* create(Sprite * backgroundSprite, Sprite* pogressSprite, Sprite* thumbSprite,
Sprite* selectedThumbSprite);
/**
* @js ctor
*/

ControlSlider();
/**
* @js NA
* @lua NA
*/

virtual ~ControlSlider();

/** 初始化一个Slider使用参数中的精灵,各个参数的意义见下面的注释
* Initializes a slider with a background sprite, a progress bar and a thumb
* item.
*
* @param backgroundSprite Sprite, that is used as a background.
* @param progressSprite Sprite, that is used as a progress bar.
* @param thumbSprite Sprite, that is used as a thumb.
*/

virtual bool initWithSprites(Sprite * backgroundSprite, Sprite* progressSprite, Sprite* thumbSprite);

/**
* Initializes a slider with a background sprite, a progress bar and a thumb
* item.
*
* @param backgroundSprite Sprite, that is used as a background.
* @param progressSprite Sprite, that is used as a progress bar.
* @param thumbSprite Sprite, that is used as a thumb.
* @param selectedThumbSprite Sprite, that is used as a selected thumb.
*/

virtual bool initWithSprites(Sprite * backgroundSprite, Sprite* progressSprite, Sprite* thumbSprite,
Sprite* selectedThumbSprite);

virtual void needsLayout();
// 常用的API
virtual void setMaximumValue(float val); // 设置滑动的最大值
virtual void setEnabled(bool enabled); // 设置能否响应
virtual bool isTouchInside(Touch * touch);
Point locationFromTouch(Touch* touch);
virtual void setValue(float val); // 手动设置滑动条的值
virtual void setMinimumValue(float val); // 设置最小值
``````
// 更多方法请自查文档和源码
};
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
推荐阅读
author-avatar
风光好风光好啊_229
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有