(8)UI(控件)
1.按钮:
按钮是游戏中最常用的控件类型之一,控制用户点击事件的开关,有正常、按下、禁用三种状态,您可以为他们设置样式及文本。
使用场景
按钮的使用十分普遍,以官方示例中的主场景示例为例,画框的内容均是由按钮控件组成
在您的项目中,界面上方的等级、钻石、钱币也可以由按钮控件组成,当用户触摸时,跳转至相应的界面。
按钮控件属性众多,除了常规属性外,还包含尺寸属性和一些特性属性,我们从经常使用按钮控件的几种场景为您介绍如何更好的使用这种控件
场景1:修改按钮背景,设置按钮按下后效果和禁用效果
按钮具有三种状态,每一种状态都可以通过图片来定义。例如实现下图的按钮
您只需要在画布上添加一个按钮后,选择该按钮控件,在属性面板的特性部分会展示按钮控件当前的样式资源,您可以通过双击修改按钮控件的属性,也可以将图片资源拖动到当前的样式资源上以替换为新的资源。我们为按钮设置了正常和按下状态,这样在游戏中触摸该按钮时,按钮就会自动切换为按下状态的图片。如果有需要,您也可以为按钮设置禁用状态。
除此之外也能通过按钮控件的右键菜单添加新的资源。
场景2:使用按钮时,需要在按钮上设置文字
有时我们在设置按钮样式后,还希望给按钮设置文字,您可以使用修改按钮文本特性来实现这个需求。您可以自定义按钮文本的颜色、字体、大小。 修改按钮文本时只需选中按钮,在属性区修改文本属性,也可以通过“菜单-编辑文本”或双击唤出修改文本弹窗。
场景3:在游戏中,不希望该按钮响应用户的触摸事件
能够在属性面板或右键菜单设置按钮是否启用,按钮禁用后在最终的游戏里将不能响应触摸事件。
2.复选框:
复选框是一种可同时选中多项的基础控件,您可设置他的各种样式,以及选中状态。
使用场景
复选框最常用的地方莫过于游戏登录界面上的“记住用户名”和“记住密码”,相信您一定经常见到。
还有就是一些游戏的设置界面,控制是否启用音乐的开关,通常也是复选框控件。复选框控件属性众多,除了常规属性外,还包含尺寸属性和一些特性属性,我们从经常使用复选框控件的几种场景为您介绍如何更好的使用这种控件。
场景1:修改复选框样式
复选框具有五种状态:背景正常样式、背景按下样式、背景禁用样式、选中标识样式、选中标识禁用样式,每一种状态都可以通过图片来定义。如果您要实现常规复选框的样式,如下图:
您可以分别设置五个状态的图片,已达到您的预期效果,如果您要实现设置界面的音乐开(关)样式,如下图:
您仅需要设置背景正常样式、背景按下样式、背景禁用样式,而将另外两个状态设置为不启用状态。除此之外也能通过按钮控件的右键菜单添加新的资源。
场景2:游戏中默认复选框是勾选(不勾选)的。
当您设置一个复选框为选中时,这个复选框在游戏中的初始状态就为选中的状态。通过属性面板或右键菜单能够修改复选框的选中状态。
3.图片控件
添加一张可以设置九宫格的图片,九宫格是一种能够使本来拉伸后会失真的图片,经过一定的处理后,拉伸后不失真的技术。关于九宫格的用法请参考4、九宫格使用.docx
图片控件相对于精灵控件,具有以下特性:
可改变原图尺寸,而不出现图片失真效果。
可使用同一资源,通过设定九宫格的参数,达到不同的最终效果。
系统开销比精灵控件大,建议不要过度使用图片控件。
使用场景
同样还是官方示例中的这个界面,您能想象到哪些地方是由图片控件组成的么?
您可以获取官方示例后,打开DifficultSelect.csd文件查看我们是如何使用图片控件的,也许会对您的项目有所启发。其中的背景由一张尺寸为16x32的图片制作而成的。下面我们为您说明如何使用图片控件制作这一背景。
场景1:如何使用图片控件
在画布上添加一个图片控件后,设置其“图片资源”属性为上图所示资源,设置方式为在属性面板的特性部分会展示控件当前的图片资源缩略图,您可以通过双击缩略图修改控件的图片资源,也可以将图片资源拖动到当前的样式资源上以替换为新的资源。除此之外也能通过九宫格图片控件的右键菜单添加新的资源。然后开启“九宫格”属性,并修改九宫格控件的上下左右边距分别为0,0,10,0,而后修改控件尺寸为70,32,定义的这些边距会影响九宫格拉伸的效果,并达到预期的效果。关于九宫格的原理和详细说明,参考4、九宫格使用.docx
4.文本
文本也是游戏中最为常用的控件之一。添加一个文本,可以设置字体、字号、对齐等样式或属性。
使用场景
在示例中很多地方使用了文本控件,如主界面:
场景1:使用不同的字体修改文本样式
如果您需要特殊的字体则需要点击导入字体按钮导入一个TTF格式的字体,这个字体将在您发布游戏时一起打包。 在修改文本的字体时需要注意,当您没有指定使用的字体时,使用的字体是所运行设备的默认字体,对于您所制作的游戏来说就是玩家设备的字体。
5.FNT字体
可以通过设置FNT字体文件实现各种艺术字体。和艺术数字比,FNT字体具有以下特性:
. 可用资源丰富,支持各类文字,下图就是一张制作好的FNT字体,不难发现,字体中包含中文,英文,数字以及某些特殊字符。
. 制作复杂,需要使用专业软件进行制作。
使用场景
场景1:使用FNT字体
在画布上添加一个FNT后,选择该FNT字体控件,在属性面板的特性部分会展示该控件当前的样式资源,您可以通过双击修改按FNT字体的属性,也可以将FNT资源拖动到当前的样式资源上以替换为新的资源。除此之外也能通过按钮控件的右键菜单添加新的资源。修改FNT字体文本时只需选中控件,在属性区修改文本属性,也可以通过“菜单-编辑文本”或双击唤出修改文本弹窗。
当您在输入框中输入了FNT中缺少的字符时,这些缺少的字符会被显示为空格。
6.进度条
通过进度条可以显示处理任务的速度、完成度,您可以设置进度条的样式。
使用场景
官方示例中,体力恢复功能就使用了进度条控件,如下图所示绿色条
场景1:修改进度条样式
在画布上添加一个进度条后,选择该进度条控件,在属性面板的特性部分会展示进度条控件当前的样式资源,您可以通过双击修改进度条控件的资源图,也可以将图片资源拖动到当前的样式资源上以替换为新的资源。除此之外也能通过进度条控件的右键菜单添加新的资源。如示例中,我们就为其设置了如下背景:
场景2:设置进度条方向
实现如上图所示血条(一个向左,一个向右),只需要设置进度条的属性“类型”,分别设定为从左至右、从右至左,通过修改进度条方向可以在游戏中实现对战时生命值的展示。
7.滑动条
滑动条可以设置滑动进度,滑块样式式等,用户可通过移动滑动滑动条在相应的控件中显示对应的值
使用场景
滑动条多用于设置某些连贯属性上,如在很多程序中的设置界面设置音量等,在官方示例中,我们也在设置界面做了滑动条的展示:
场景1:修改滑动条样式
如上图,要设置上图中的进度条,您需要以下五个资源,他们分别用于设置滑动条的背景样式、内部进度条样式、滑块正常样式、滑块按下样式、滑块禁用样式,每一种状态都可以通过图片来定义。在我们的示例中,禁用状态没有设置。
在画布上添加一个滑动条后,选择该滑动条控件,在属性面板的特性部分会展示滑动条控件当前的样式资源,您可以通过双击修改滑动条控件的属性,也可以将图片资源拖动到当前的样式资源上以替换为新的资源。
除此之外也能通过滑动条控件的右键菜单添加新的资源。
8.艺术数字
可以通过一张包含“./0123456789”的PNG图片实现艺术数字的效果,每个字符的高为图片的高,宽为图片的1/12,通过艺术数字可以实现艺术化效果的数字,能够简单有效的丰富游戏的视觉效果。和FNT字体相比,艺术数字具有以下特性:
. 制作方便,FNT字体制作复杂,而艺术数字较简单
. 可用资源少,艺术数字仅支持“.”、“/”、“0-9的数字”
使用场景
我们的官方示例中,选择关卡这里就使用了艺术数字
场景1:修改艺术数字图片资源
在画布上添加一个艺术数字后,选择该艺术数字控件,在属性面板的特性部分会展示控件当前的图片资源缩略图,您可以通过双击缩略图修改控件的图片资源,也可以将图片资源拖动到当前的样式资源上以替换为新的资源。除此之外也能通过艺术数字控件的右键菜单添加新的资源。修改按钮文本时只需选中按钮,在属性区修改文本属性,也可以通过“菜单-编辑文本”或双击唤出修改文本弹窗。
特别说明
制作艺术数字时需要游戏美术设计人员提供一张包含了“.”、“/”、“0-9的数字”的图片,确保顺序为./0123456789,且按照图片宽度进行12等分能够分割出各个独立的数字。
一张典型的艺术数字图片资源
自定义控件
Armature控件可支持导入1.x版本的Cocos Studio动画编辑器所制作的动画控件。 您可以使用Armature控件实现在Cocos Studio v2.x中添加动画内容的功能,并控制当前的动画列表以及播放状态。并在编辑器中预览动画。
使用场景:
场景1:导入并使用1.x版本的动画导出文件。
您可以为Armature控件导入制作好的动画导出文件(ExportJson文件):
. 从资源面板拖动文件至Armature控件的文件属性,松开鼠标即实现文件导入;
. 在属性面板的“特性”中,点击“导入文件”按钮,选择文件导入;
. 在画布中选中Armature控件右键选择“设置Armature文件”,选择文件导入。
场景2:控制动画的播放状态:
您可以为Armature控件设置当前的动画列表,可以指定Armature控件循环播放动画或指定Armature控件是否在创建游戏时自动播放。
(8)UI(控件)的更多相关文章
- ANDROID L——Material Design详解(UI控件)
转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! Android L: Google已经确认Android L就是Android Lolli ...
- WinForm/Silverlight多线程编程中如何更新UI控件的值
单线程的winfom程序中,设置一个控件的值是很easy的事情,直接 this.TextBox1.value = "Hello World!";就搞定了,但是如果在一个新线程中这么 ...
- 富客户端 wpf, Winform 多线程更新UI控件
前言 在富客户端的app中,如果在主线程中运行一些长时间的任务,那么应用程序的UI就不能正常相应.因为主线程要负责消息循环,相应鼠标等事件还有展现UI. 因此我们可以开启一个线程来格外处理需要长时间的 ...
- UI控件(复习一下)
如何修改控件状态• 可见,确实需要经常修改控件状态• 那如何去修改控件的状态呢?方法很简单➢ 每一个UI控件都是一个对象➢ 修改UI控件的状态,其实就是修改控件对象的属性➢ 比如修改UILabel显示 ...
- IOS学习资源收集--开发UI控件相关
收集的一些本人了解过的iOS开发UI控件相关的代码资源(本文持续补充更新) 内容大纲: 1.本人在github上也上传了我分装好的一些可重复利用的UI控件 2.计时相关的自定义UILabel控件 正文 ...
- 《深入理解Windows Phone 8.1 UI控件编程》基于最新的Runtime框架
<深入理解Windows Phone 8.1 UI控件编程>本书基于最新的Windows Phone 8.1 Runtime SDK编写,全面深入地论述了最酷的UI编程技术:实现复杂炫酷的 ...
- AppleWatch___学习笔记(二)UI布局和UI控件
1.UI布局 直接开发,你会发现Apple Watch并不支持AutoLayout,WatchKit里有个类叫做WKInterfaceGroup,乍一看像是UIView,但是这货其实是用来布局的.从 ...
- (转).NET 4.5中使用Task.Run和Parallel.For()实现的C# Winform多线程任务及跨线程更新UI控件综合实例
http://2sharings.com/2014/net-4-5-task-run-parallel-for-winform-cross-multiple-threads-update-ui-dem ...
- Atitit. .net c# web 跟客户端winform 的ui控件结构比较
Atitit. .net c# web 跟客户端winform 的ui控件结构比较 .net 4.5 webform Winform 命名空间 System.Web.UI.WebControls ...
- Silverlight项目笔记1:UI控件与布局、MVVM、数据绑定、await/async、Linq查询、WCF RIA Services、序列化、委托与事件
最近从技术支持转到开发岗,做Silverlight部分的开发,用的Prism+MVVM,框架由同事搭好,目前做的主要是功能实现,用到了一些东西,侧重于如何使用,总结如下 1.UI控件与布局 常用的主要 ...
随机推荐
- EntityFramework:值不能为 null。参数名: entitySet 异常解决方案
昨天EF莫名其妙的,掉所有接口访问都出现如下错误:百度,Google了半天,倒是有很多人都遇到了这个问题,但都没有一个解决方案,或者解决方案无效.通过层层排除,终于找到问题的所在.记录下来,给以后再遇 ...
- ubuntu的命令day1
ls -i 显示所有的文件,包括隐藏的文件. 以 . 开头的文件都是隐藏文件,可以在终端用ls -i显示所有的文件.比如.ssh linux生成密钥的命令如下: 1. cd .ssh/ ...
- 使用git管理代码的心得
一.简易使用流程 首先下载安装git,点击Git Bash进入编辑界面,之后如下图进入目录并通过命令 git init 把这个目录变成git可以管理的仓库 接下来使用git add .命令将所有文件添 ...
- Ibatis学习总结7--SqlMapClient 执行 SQL 语句
SqlMapCient 类提供了执行所有 mapped statement 的 API.这些方法如下: public int insert(String statementName, Object p ...
- Java中唯一数的生成
唯一数的生成很简单,基本上以时间为基础进行生成.在JDK里面已经有java.util.UUID类可以生成唯一的随机数.如果希望生成的唯一数为特定的格式,那么就需要自己来生成唯一数了.生成唯一数时有两个 ...
- MVC升级以后出现"当前上下文中不存在ViewBag"的问题解决
把自己的项目从MVC4升级到了MVC5,结果问题一大堆,View的设计环境出现了"当前上下文中不存在ViewBag"的问题: 虽然不影响编译,但是看了总是不爽,而且语法提示也没有了 ...
- DVR分布式路由
1. 背景 没有使用DVR的场景: 从图中可以明显看到东西向和南北向的流量会集中到网络节点,这会使网络节点成为瓶颈. 如果启用DVR,如下图: 对于东西向的流量, 流量会直接在计算节点之间传递. 对于 ...
- bzoj 1193 贪心
如果两点的曼哈顿距离在一定范围内时我们直接暴力搜索就可以得到答案,那么开始贪心的跳,判断两点横纵坐标的差值,差值大的方向条2,小的条1,不断做,直到曼哈顿距离较小时可以暴力求解. 备注:开始想的是确定 ...
- 细菌觅食算法-python实现
BFOIndividual.py import numpy as np import ObjFunction class BFOIndividual: ''' individual of bateri ...
- Codevs2157 配对
题目描述 Description 给出2个序列A={a[1],a[2],…,a[n]},B={b[1],b[2],…,b[n]},从A.B中各选出n个元素进行一一配对(可以不按照原来在序列中的顺序), ...