奎特尔星球|英雄与魔灵

这次换一种方式聊聊Creator的UI开发,目的是想让学习那么枯燥,如果你是一个爱玩游戏的朋友相信你会很有感觉。

一、奎特尔星球

奎特尔星球上,有着无数的英雄,身怀绝世魔力,在创世之主的统之下维护着奎特尔世界的安定与和平。

Node是忍者,尾兽是魔灵

1. Node英雄传

cc.Node是构建“奎特尔”星的基石,上至星体下至尘埃,无处不在,无论是可见的或不可见的,都由有他们默默的在支撑着。

英雄在层级管理与场景编辑器

上图层级管理器和场景编辑器中,我们看到的都是英雄Node,请由我来逐一介绍:

  1. 名为Canvas的英雄,像盘古一样开天辟地化身出了一个世界,定义了世界的边界和范围。
  2. Background英雄,用自己的整个身体去美化这个世界(虽然只是单一的银白色)。
  3. Advanced统帅着他的部队(子节点)构建出这个的世界功能。
  4. Top Left队长带领着勇士Label和Tips完成具体的任务。
  5. Label小英雄显示出小分队的名字。
  6. Tips小英雄显示出小分队的详细信息。

众多的Node英雄们不分大小、地位同心协作,创造出炫丽多彩的奎特尔星球。

2. 魔灵

英雄最为骄傲的能力能是可以装佩各种神奇的魔灵(Component)。


魔灵附身的英雄

在UI开发中,魔灵们大至分为两类:光与暗

光系魔灵

可以直接在场景编辑器中感知到他的存在,常见的有:
cc.Sprite、cc.Label、 cc.Button、 cc.EditBox

暗系魔灵

一般在场景编辑器中很难感知到他的存在,当选中node节点后,通过属性检查器中才可以看到,常见的有:
cc.Canvas、cc.Widget、cc.Layout、cc.Mask

“奎特尔”星球上的魔灵是最具有魔力的生灵,他们也可以像Node英雄一样化出无数分身,并附身在Node上一起并肩作战,生死与共。

三、 创世之主

六道仙人

在地球上有一类人,他们可以通过“奎特尔引擎”创建出各种奇特的、丰富多彩的奎特尔星球,他们被称之为Cocos程序员,也称之为奎特尔星球的创世之主
不论你是谁,只要你能驾驭奎特尔引擎,与奎特尔的英雄、魔灵们建立起联接,你就能开创出一片新的世界。

二、英雄原力

英雄原力

要想成为奎特尔星求的创世之主,你需要了解Node英雄的一些能力和特性。

1. 英雄三围

每一个node英雄都具有任意改变自身外型能力,以适应不同的生存环境,我们来看看英雄的三围参数。

image.png

Node有着控制自己外型尺寸的能力,通过上图我们一一介绍下这些属性。

  1. 输入框中可以为英雄取个名字(node.name),左边的复选框选中可以显示或隐藏英雄(node.active)。
  2. Position:Node在二维世界中的位置(node.x、node.y、node.position)
  3. Rotation:旋转角度,范围0~360(node.rotation)
  4. Scale:缩放比例,可以根据宽、高缩放,值相同就是等比缩放(node.scale)
  5. Anchor:位置与旋转的基准点,中心点(0.5, 0.5)左下角(0,0),右上角(1,1),(node.anchor)
  6. Size:英雄的宽、高体型大小(node.width、node.height、node.getContentSize、node.setContentSize)
  7. Color:每一个英雄都是变色龙(node.color)
  8. Opacity:英雄可以将自己透明,范围0~255 (node.opacity)
  9. Skew:扭曲角度 (node.skew)

Node英雄除了上面这些可以在属性检查器中可以看到参数外,还有几个重要的属性只能由魔咒(代码)来控制:

  1. zIndex: Node英雄要冲锋在战场的最前面,就需要有足够大的zIndex值。(node.zIndex)
  2. tag: tag是一个int属性的标签(tag、setTag、getTag),在父节点上可以使用getChildByTag获取子节点。
  3. isValid: 这是个只读属性,表示英雄是否还活着。
  4. parent: Node英雄之间通过parent建立父子关系,形成一颗树型结构。
  5. children: 一个Node小队长可以通过children获取他带领的小组成员。

2. 英雄的感知能力

所有node都是感知型忍者

所有的英雄都能感知外界面对自己的指指点点,能过感知这些指指点点,英雄们可以做出让人叹为观止的各种反击,从而演绎现出一幕幕精彩纷呈的星球大战,感知力我将他们分为三类:

  1. 触摸事件、鼠标事件:最常用的有TOUCH_END
node.on(cc.Node.EventType.TOUCH_END, 事件处理函数)
  1. 属性改变事件:当一个node英雄的属性发生变化时,他会发出信号。我们可以通过感知其它英雄的属性变化即时给予支援
this.node.on('position-changed', 事件处理函数)
  1. 自定义事件:创世之主可以自由定义事件,通过emit发送出去。
this.node.emit('事件名字符串', {参数});
...
node.on('事件名字符串', 事件处理函数)

3. 英雄会跳舞

image.png

node是舞者action是舞步

每一个Node英雄都是一个天然的舞者,只要呼唤他的runAction,他就会为你舞动奇迹。

//移动步法
let moveTo = cc.moveTo(1, cc.p(100, 100));
//让英雄舞动起来
node.runAction(moveTo);

在这里node是就是舞者,moveTo是舞步,而舞步需要由创世之主来编排。
舞步是英雄的必杀技能之一被称之为Action,由于篇幅我们以后专门介绍舞步的设计与编排,以及单人舞步、多人舞步,舞步同步等绝技。

4. 魔灵附身

魔灵附身

英雄另一个超能力就是“魔灵附身”,英雄已然很强大,注入魔灵后的英雄才能真正上战场,魔灵与英雄建立联接有以下几种方法:

  • 利用奎特尔引擎,你可以直接召唤出装备有魔灵的英雄。
  • 通过属性检查器为node添加注入魔灵。
  • 使用魔咒(addComponent)为node注入魔灵。
  • 创世之主还可以自己制造魔灵,将其附身在英雄身上。

要成为奎特尔的创世之主,必须清楚英雄们的能力,并能灵活运用,组织他们相互协作,才能战胜敌人。

三、魔法英雄联盟

Node是忍者,尾兽是魔灵

奎特尔星球上虽然有Node英雄们,但英雄们有一个问题,他们自己不会行动,必须靠魔灵们驱动node完成任务。
不同的魔灵注入到node,就可以让node具有不同的外表、特性和能力。

1. 光系魔灵

前面提到过,光系魔灵可以直接在场景编辑器看到它们,这里我们介绍几个光系魔灵的代表。

cc.Sprite

Sprite魔灵可以说是众魔之首,在一场战斗中不论是重要度和规模数量都是其他魔灵不可企及的。Sprite主要特点是通过美化node,色诱敌人,扰乱其心使其沉迷不可自拔。

cc.Label

魔灵中的第二把交椅应该属于Label,Label在战斗中将node的躯体化身为文字,诱敌深入。cc.Label还有一个姐妹是cc.RichText。

cc.Button

Button老三,当敌人触摸到Sprite所装扮的node后,Button则顺势摆出一娇羞的动作(按钮动画:图片切换、颜色切换、缩放切换),并通过事件函数报告敌军行踪。

cc.EditBox

老四EditBox,通常也是与Sprite配合,诱使敌人输入文本,从而窃取情报(最为常见的是用户名、密码)。

色诱术与幻术

2. 暗系魔灵

暗系魔灵在场景编辑中是很难直接看到他们的,他们身藏在Node英雄与光系魔灵的背后,用自己独特的能力为整个战事服务。

火影-暗部忍者

cc.Widget

Widget魔灵虽然不能被看见,但它可以帮助node在不同战场确定自己的位置(屏幕适配、相对定位),如果一只队伍要在不同尺寸的战场上作战,那Widget绝对少不了,特别是在上层Node节点。

cc.Layout

Layout魔灵像是一个严格的教官,可以约束node下的小分队(子节点)以纵向、横向、网格方式进行自动排列,以及间距和边距。还可以根据子节的排列改变自己所附身的node的大小。

cc.Canvas

Canvas魔灵为整体战场划出界,限并化身出一道结界,与其他装备有Widget的魔灵让战场更加的和谐。

奎特尔引擎还提供了大量的其他魔灵,按奎特尔的传统将他们分为:

UI系、渲染系、物理系、碰撞系、用户系

我们这里介绍的光系、暗系其实是属于UI、渲染系中的成员。更为强大的是创世之主可以自己创造魔灵,集从魔之力面对奎特尔星球来范之敌。


成为六道仙人自创魔灵
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容

  • 紧接上篇《奎特尔星球|雷神之锤(上)》,我给大家介绍了雷神之锤—uikiller的基本用法,有人说长按功能可以取名...
    张晓衡阅读 1,866评论 3 5
  • 奎特尔星球上有一件绝世神兵,就像是一把雷神之锤,在它的号令之下指挥着节点、组件和触摸事件,从而大量减少冗余代码与编...
    张晓衡阅读 4,105评论 9 14
  • 凌波微步有云: 此步法精妙异常,习者可以用来躲避众多敌人的进攻,此外「凌波微步」每踏出一步,都与内力息息相关,决非...
    张晓衡阅读 2,273评论 8 12
  • 原文地址:Server-Side React Rendering原文作者:Roger Jin译者:牧云云 Reac...
    牧云云阅读 10,446评论 1 12
  • 我不喜欢的是《明朝那些事》 当然不是这样 窗前明月凄凄切切群群群群群群群凄凄切切群群群群群群群群凄凄切切群群群群群...
    格格zw阅读 358评论 0 0