Cocos2d-x提供了一套易于使用的UI API来满足你的GUI需求,其中包括:Label、Menu、MenuItems、Buttons和Views。 Label(标签) Cocos2d-x中提供了Label(标签)对象来创建TTF、BMFont和SystemFont文本。 Label BMFont(BMFont标签) BMFont是使用位图字体的标签类型。位图字体是由点或像素矩阵所组成,这些点和像素代表了字符图形的外形和大小。位图字体的使用很方便也很容易,但它不可伸缩,其每个尺寸都需要一个单独的字体。 Label类是SpriteBatchNode的子类,所以Label的每个字符都可以看作一个Sprite(精灵),都具有旋转、缩放、着色,改变锚点以及其他继承自Node对象的属性。 创建一个BMFont文本需要两个文件:一个.fnt文件和一个显示每一个对象的.png格式的图片。利用像Glyph Designer这样的工具可以自动创建该类型的文件。 Label TTF(TTF标签) TTF是一个 True Type Font 的标签类型。创建TTF标签你需要指定一个.ttf格式的字体文件名、文本字符串以及字体大小。与BMFont不同,TTF可以改变字体的显示大小,无需单独的字体。 Label SystemFont(系统字体标签) SystemFont是一个使用系统默认的字体和尺寸的标签类型。意思就是说我们不能修改字体的属性,你可以理解为是一种系统字体,系统规则。创建一个SystemFont标签 菜单和菜单项 Menu 是游戏选项的导航。菜单通常包含如播放、退出、设置和关于等选项。通常以可点击的按钮形式显示。 菜单由什么组成 Menu是一个特殊的Node对象 菜单选项和添加到菜单 MenuItems是Menu的核心。菜单选项通常有一个正常状态、一个被选择的状态以及一个回调。回调通常发生在MenuItems被选择的时候。 Lambda作为菜单回调 lambda 函数是指可以在源代码中编写内联函数的函数。Cocos2d-x中可以使用 lambda 函数,你甚至可以将 lambda 函数作为回调函数。除了Menu回调, lambda 函数可用作多种函数。 GUI控件和容器 综述 新的GUI模块是基于GUI控件的框架,最开始设计是用于Cocos Studio中。新的GUI模块的父类是继承自Protectednode的ui::Widget。当从Protectednode中添加或者移除子节点时,Protectednode用于控制内部Node列表。内部节点列表不会被触发,对于保持模块内部渲染组件很安全。我们可以将GUI分成两部分:Widget (控件)和 Containers (容器)。 Layout(布局) Layout类是所有容器的父类,它继承自Widget。Layout类主要用于陈列子控件和剪裁。 LayoutManager、LayoutParameter和Margin类用于陈列元素。HBox、VBox和RelativeBox可以很方便地将子控件水平地、垂直地、相对地陈列子控件。 ScrolView、ListView和PageView是针对某些场景使用的指定容器。我们将在另一章节中详细讲解。 Widgets(组件) Widgets(组件)是GUI对象,使用组件可以很容易地创建用户界面。下面我们来一起讨论下你可能会用到的一些常用组件: Buttons(按钮) 按钮用来拦截触摸事件,点击按钮会调用一个预定义的回调函数。它继承自ui::Widget,这个类提供了设置按钮标题、图像以及其他属相的方法。每个按钮都有一个正常状态和一个被选择的状态。Button的外观根据状态而改变 CheckBox(复选框) CheckBox允许用户可以做多重选择。CheckBox可以有正常、被选择、不可选三种状态。 LoadingBar(进度条) LoadingBar可用于显示操作的进程,例如下载、文件传输等,也可以称其为状态条。 Slider(滑动条) 滑动条允许用户通过移动一个指标来设定值。 ImageView(图像显示控件 ) ImageView是一个展示图片的占位符。支持触摸事件、对焦、百分比定位和内容大小百分比。 Text(文本) Text控件用于展示文本。还可以将其用作一个写了字的按钮。Text支持系统默认字体和TTF字体。 TextBMFont TextBMFont控件用于显示BMFont文本。支持触摸事件、对焦、百分比定位和内容大小百分比 TextAtlas TextAtlas控件用于将文本显示为Atlas字体。支持触摸事件、对焦、百分比定位和内容大小百分比。 RichText(富文本) RichText控件用于显示文本、图像和常用节点。支持触摸事件、对焦、百分比定位和内容大小百分比。当接收到一个触摸事件时,整个RichText控件都接收这个事件 TextField TextField控件用于输入文本。支持触摸事件、对焦、百分比定位和内容大小百分比。

Cocos2d-x UI学习笔记的更多相关文章

  1. 在Monotouch上模拟.NET的框架?

    有没有人使用过他们发现与Monotouch兼容的.NET模拟框架?在尝试使用之前,我很好奇与NMock,NSubstitute,Moq和其他框架的兼容性.Xamarin刚刚加强了它的单元测试支持,但没有提到模拟框架.仅供参考,我希望在VS2010上为非UI位做很多开发,并在UI进入时移动到iOS平台.谢谢您的帮助.解决方法我建议只使用手动模拟:如果我不得不猜测RhinoMocks,Moq等大量使用Reflection.Emit(你怎么能做他们能做的疯狂?),这将无法在MonoTouch上使用AOT编译器运

  2. ios – 如何删除/解码URL百分比编码?

    我想要一个url并将其转换成更易读的格式.例如我有以下链接:我拿走了不必要的部分,并留下了“Sándor_Font”作为Nsstring.有没有什么方式将它转换成“SándorFont”,而不必输出每一个特殊字符的组合并替换字符串的每个部分?为了演示如何使用它,我写了以下示例代码:最后我要标签说“SándorFont”不是“Sándor_Font”.谢谢!

  3. ios – 地址簿UI框架已弃用的方法

    我正在研究一个现有的目标c项目,在阅读iOS的地址簿UI框架参考时,发现以下类已在iOS9中弃用.(ABUnkNownPersonViewController,ABPersonViewController,ABPeoplePickerNavigationController,ABNewPersonViewController)有什么可以替代它.在哪里我可以找到一些相关的文件.任何帮助赞赏.提前致谢

  4. ios – 如何在使用XCode 7的Storyboards中将视图高度设置为屏幕高度的百分比

    我需要设计如下图像的视图,我已经尝试了固定的高度,并尝试了紧凑的宽度和规则的高度和规则的宽度和紧凑的高度,但这些情况对我没有用.如何在Storyboards中将视图高度设置为屏幕高度的百分比?

  5. swift UI专项训练26 控件综述

    我们常用的滑块、开关等都是控件。控件的基类都是UIControl。控件的内容如下:主要有选中、可以使用和高亮。控件的目标-操作机制,原理是一个控件在一个与之相关的事件发生之后,向另一个对象发送一个消息。上图是控件外观的操作,主要是水平和垂直的对齐方式。控件的约束和视图差不多,也主要是距离的约束。

  6. 早期Swift中Cocos2D初始化代码的重构

    但是遗憾的是Swift2.2中还是不支持Type的class属性关键字,只能用static,我们期待Swift3的改进吧!

  7. 39个优秀的Swift UI开源库

    No3RazzleDazzle[2291starsonGithub]一个简单的基于关键帧的iOS动画框架,使用Swift语言编写,完美应用于滚动型应用。No10TwicketSegmentedControl[680starsonGithub]用于iOS的自定义UISegmentedControl替换,Swift编写。No12SwiftMessages[1356starsonGithub]Swift编写的非常灵活的警报消息。No13XLActionController[1346starsonGithub]S

  8. 手把手教你swift项目添加cocos2dx-lua

    去倒杯水吧,这个过程会很久。。。至此,工程已经全部配置完毕,你已经解决一个大Boss了;今天就到这里吧,之后我们再续如何用swift调用lua手把手教你swift项目添加cocos2dx-lua

  9. 手把手教你swift项目集成cocos2dx-js模块

    前几天在swift项目中集成了Lua模块,使得在swift工程中用Lua写游戏逻辑成为了可能,具体工程及配置见手把手教你swift项目添加cocos2dx-lua,由于公司最近要把js做的小游戏集成到iOS原生应用中,于是我们将解锁另外一个场景,好了,下面开始;同样的,首先你得有一个swift项目我们从头开始,建立一个swift项目;我们默认你已经可以自己创建一个全新的swift项目了,这很简单,不是么?

  10. swift – 使UIButton占屏幕大小的百分比

    我注意到iPhone5模拟器上的某些按钮尺寸看起来很棒,但在iPhone6模拟器上看起来不太好,这是因为我放在UIButton上的高度或约束最终会在底部留下很多空白区域.我的应用程序屏幕无论我在哪个设备上模拟,我都希望有一个40%的屏幕大小的按钮.无论设备如何,关于如何使按钮大小的任何想法都保持在屏幕尺寸的40%?>按住Ctrl键从按钮拖动到superview,然后选择EqualWidths>OpenSizeInspector编辑EqualWidths约束并将乘数设置为0.4.你会看到这样的事情:>添加缺

随机推荐

  1. 【cocos2d-x 3.x 学习笔记】对象内存管理

    Cocos2d-x的内存管理cocos2d-x中使用的是上面的引用计数来管理内存,但是又增加了一些自己的特色。cocos2d-x中通过Ref类来实现引用计数,所有需要实现内存自动回收的类都应该继承自Ref类。下面是Ref类的定义:在cocos2d-x中创建对象通常有两种方式:这两中方式的差异可以参见我另一篇博文“对象创建方式讨论”。在cocos2d-x中提倡使用第二种方式,为了避免误用第一种方式,一般将构造函数设为protected或private。参考资料:[1]cocos2d-x高级开发教程2.3节[

  2. 利用cocos2dx 3.2开发消灭星星六如何在cocos2dx中显示中文

    由于编码的不同,在cocos2dx中的Label控件中如果放入中文字,往往会出现乱码。为了方便使用,我把这个从文档中获取中文字的方法放在一个头文件里面Chinese.h这里的tex_vec是cocos2dx提供的一个保存文档内容的一个容器。这里给出ChineseWords,xml的格式再看看ChineseWord的实现Chinese.cpp就这样,以后在需要用到中文字的地方,就先include这个头文件然后调用ChineseWord函数,获取一串中文字符串。

  3. 利用cocos2dx 3.2开发消灭星星七关于星星的算法

    在前面,我们已经在GameLayer中利用随机数初始化了一个StarMatrix,如果还不知道怎么创建星星矩阵请回去看看而且我们也讲了整个游戏的触摸事件的派发了。

  4. cocos2dx3.x 新手打包APK注意事项!

    这个在编译的时候就可以发现了比较好弄这只是我遇到的,其他的以后遇到再补充吧。。。以前被这两个问题坑了好久

  5. 利用cocos2dx 3.2开发消灭星星八游戏的结束判断与数据控制

    如果你看完之前的,那么你基本已经拥有一个消灭星星游戏的雏形。开始把剩下的两两互不相连的星星消去。那么如何判断是GameOver还是进入下一关呢。。其实游戏数据贯穿整个游戏,包括星星消除的时候要加到获得分数上,消去剩下两两不相连的星星的时候的加分政策等,因此如果前面没有做这一块的,最好回去搞一搞。

  6. 利用cocos2dx 3.2开发消灭星星九为游戏添加一些特效

    needClear是一个flag,当游戏判断不能再继续后,这个flag变为true,开始消除剩下的星星clearSumTime是一个累加器ONE_CLEAR_TIME就是每颗星星消除的时间2.连击加分信息一般消除一次星星都会有连击信息和加多少分的信息。其实这些combo标签就是一张图片,也是通过控制其属性或者runAction来实现。源码ComboEffect.hComboEffect.cpp4.消除星星粒子效果消除星星时,为了实现星星爆裂散落的效果,使用了cocos2d提供的粒子特效引擎对于粒子特效不了

  7. 02 Cocos2D-x引擎win7环境搭建及创建项目

    官网有搭建的文章,直接转载记录。环境搭建:本文介绍如何搭建Cocos2d-x3.2版本的开发环境。项目创建:一、通过命令创建项目前面搭建好环境后,怎样创建自己的Cocos2d-x项目呢?先来看看Cocos2d-x3.2的目录吧这就是Cocos2d-x3.2的目录。输入cocosnew项目名–p包名–lcpp–d路径回车就创建成功了例如:成功后,找到这个项目打开proj.win32目录下的Hello.slnF5成功了。

  8. 利用cocos2dx 3.2开发消灭星星十为游戏添加音效项目源码分享

    一个游戏,声音也是非常的重要,其实cocos2dx里面的简单音效引擎的使用是非常简单的。我这里只不过是用一个类对所有的音效进行管理罢了。Audio.hAudio.cpp好了,本系列教程到此结束,第一次写教程如有不对请见谅或指教,谢谢大家。最后附上整个项目的源代码点击打开链接

  9. 03 Helloworld

    程序都有一个入口点,在C++就是main函数了,打开main.cpp,代码如下:123456789101112131415161718#include"main.h"#include"AppDelegate.h"#include"cocos2d.h"USING_NS_CC;intAPIENTRY_tWinMain{UNREFERENCED_ParaMETER;UNREFERENCED_ParaMETER;//createtheapplicationinstanceAppDelegateapp;return

  10. MenuItemImage*图标菜单创建注意事项

    学习cocos2dx,看的是cocos2d-x3.x手游开发实例详解,这本书错误一大把,本着探索求知勇于发现错误改正错误的精神,我跟着书上的例子一起调试,当学习到场景切换这个小节的时候,出了个错误,卡了我好几个小时。

返回
顶部