简介
目前接触了一些游戏引擎,如cocos,egret,laya,unity,phaser等,在接触一个款新的游戏引擎的时候,就会发现,怎么几个游戏引擎都是这么类似的,因此,现在我们来盘点下,游戏开发中一些常见的概念
显示列表
基本所有引擎显示对象都有一个显示列表,addChild和removeChild的方法,从舞台Stage开始类似树状的形式不断的添加移除
被添加到舞台的显示对象显示,被移除的不显示
显示对象
由于代码是通过js驱动的,我们无法像一个<img/>来添加一个显示对象,因此这些显示对象就会抽象成为一个基础类,如 egret.DisplayObject,Laya.Node, cc.Node,等等通过构造一个对象放置到舞台进行显示
进而我们可以拓展很多Lable,Image等对象
定位
学习html之后,就会发现,所有的显示对象都是通过xy来进行定位的,和之前 排版 不同
个人认为主要html是一开始用来写一些文章,我们删除一行字的时候,理论上下面的字会自动顶上去,这样我们可以省去了人工去定位的麻烦(当我们写一行字的时候,下面的行字就像被挤了下去=。=)
但是游戏不同,浏览器可以通过滑动翻页来继续阅读文字,游戏是希望通过一个界面来显示所有内容,因此为了尽可能的利用空间,我们会上中下,ui会尝试去占据他,这点和排版不太类似,我们更希望直接摆上去,互相不影响
UI编辑器
目的很简单,其实就是序列化我们需要显示的对象,抽象成了一种数据形式,代码解析时,会自动去生成显示对是,所见即所得