项目结构

一个完整的唤境Evkworld工程会包含以下内容,这些内容都会在编辑器内的相应位置展示。在制作大型项目时,你也可以利用文件夹来分类存放各种对象,这对提高游戏制作效率非常重要。

场景

场景可以是关卡、菜单、地图、标题页或任何一段独立的游戏片段。从另一个角度讲,由一些预先布置好的对象所组成的界面,就叫做场景。在其他游戏开发工具中,场景可能被叫做幕、画布、剧情等。您可以在手册中的项目概念部分了解场景的更多细节。

一个场景是由多个图层组组成的。唤境Evkworld中的图层组与PhotoShop中的图层组概念类似,都包含多个对象;与PhotoShop不同的是,唤境Evkworld中的图层组不仅可以包含图像,还可以包含按钮、对话框等内容。图层组可以非常方便地安排舞台上对象的遮挡关系,这一点也与PhotoShop一致:在上方的图层组会遮挡下方的图层组。您可以在图层组页面,进行顺序调整。

事件表

在唤境Evkworld中,事件表是由一系列定义了游戏逻辑的事件组成的。事件表可以代替编程,实现游戏逻辑。事件表有两种类型:与场景关联的场景事件表和与项目关联的全局事件表。

  • 场景事件表:每当您选中某个场景,在舞台下方所展示的事件表,就是与该场景关联的事件表,它只会影响该场景中的游戏逻辑;当跳转到其他场景时,则其他场景所关联的事件表开始生效。场景事件表可以为空。

  • 全局事件表:全局事件表与场景事件表显示的位置有所不同:它会显示在项目库区域,双击可进入编辑模式。全局事件表不会主动与任何一个场景相关联,需要选中全局事件表后,在右侧的属性面板选择生效场景(支持多选);选定后,全局事件表中的事件会在对应场景生效。全局事件表可以用来撰写游戏中较为通用的逻辑(例如游戏UI、敌人AI等);选择需要使用这些逻辑的场景,可以避免在场景事件表中重复撰写同样的事件。

组件

在唤境Evkworld中,组件代表了一类对象。当您点击组件按钮时,编辑器会在对象库创建一个对象,同时在舞台上创建该对象的一个实例(关于对象与实例,您可以参考下节内容);例如,点击顶部快捷栏的精灵组件,即可在项目中创建一个精灵对象,同时舞台上出现了一个默认贴图的精灵实例。

每个组件都会有一些独特的属性或方法,具体可以查看本手册中的组件大全部分。

对象与实例

在唤境Evkworld中,对象是组成游戏的基石;游戏中的所有内容,从角色、子弹、伤害数字到声音、数据、虚拟摇杆,都属于对象。

您可以将对象理解为一系列相同实体构成的集合概念;如象棋中的四个马可以作为一个对象象棋马13亿中国人可以作为一个对象中国人

实例,则指的是集合概念中的某个具体个体。依旧使用上文中的例子:象棋中,黑方左手边的马就是对象象棋马的一个实例;某个有中国国籍的人就是对象中国人的一个实例。

由以上说明您可以发现,对象与实例之间的关系是一对多的关系;一个对象可以对应多个实例,但一个实例只能归属于一个对象。这种一对多的关系,会体现在很多地方,例如:当您将对象从对象库拖动到舞台上时,会自动创建该对象的实例;当您从舞台上删除某个实例时,并不会影响到对象。选中当您选中舞台上的某个实例,编辑其通用属性(如位置、尺寸等)时,仅会影响该实例自身;当您选中对象库中的某个对象,编辑其属性(如贴图、能力等),会影响所有实例。

对象可以被分到同类组当中;事件表所控制的也往往是对象。

对象与实例是唤境Evkworld编辑器中非常重要的概念,理解它们的区别对您的游戏制作会非常有帮助;它们将反复出现在本手册中。想了解更多关于对象与实例的信息,请查看手册中的项目概念部分。

可视对象与抽象对象

所有可以在游戏中看到、在编辑器舞台上展示出来的对象,都是可视对象,包括精灵、按钮、对话框、文本框等;它们往往被用来实现游戏的美术部分。抽象对象,则是指那些无法在游戏中直接看到,却又实实在在影响着游戏的内容,包括保存怪物生命值的数组、接受玩家操作指令的鼠标等等;这类对象对应着游戏中的控制、数据等功能。您可以在对象库中,切换查看可见对象与抽象对象。

在每个工程中,我们默认为你添加了系统、鼠标、键盘、触屏这四种抽象对象;它们主要用来接收用户操作,以及进行游戏内的运算等工作。这四种抽象对象在一个项目中只能存在一个。而像数组这类,用来保存数据的抽象对象,可以创建多个。

变量

一款完整的游戏中,会存在众多可以变化的数值,如玩家的经验值、获得的金币、剩余的生命值等等。在唤境Evkworld中,您可以使用变量来储存这些变化的值。

变量有三种类型:数值型、布尔型和文本型。数值型可以储存数字,常用于血量、经验值等情景;布尔型只储存真或假,常用于关卡解锁与否、能力解锁与否;文本型储存一个字符串,常用于某些需要变化的字符串,如NPC的名字。

从作用范围上来看,唤境Evkworld中的变量分为两种,一种是全局变量,一种是实例变量:

  • 全局变量:在游戏中任何位置,都可以读取或修改,且在各处值都一致的变量,被称为全局变量。例如,AVG游戏中通常有“好感度”的设定,“好感度”就应该是一个全局变量:因为不同场景中的选择都可能影响“好感度”;同时,“好感度”也会影响不同场景中的剧情。
    全局变量不与任何组件绑定,它是独立存在于项目之中的;所以,它会显示在项目库的全局变量标签下。

  • 实例变量:与实例相关联,各个实例间值不同的变量,被称为实例变量。例如,射击游戏中各个敌人的剩余血量,就可以使用实例变量来实现;两个相同的怪物,一个被射击了一次、另一个被射击了两次,他们剩余的血量必然是不同的。因为实例变量与实例间的强相关关系,实例变量会在您选中某个实例时,显示在属性面板的数值标签里。

项目文件

除了常用的图片之外,游戏中往往还会用到一些外部的文件,如声音、视频等;在唤境Evkworld中也不例外。唤境Evkworld中所使用的项目文件可以被分为两类:多媒体文件与字体文件。

  • 多媒体文件:多媒体文件包括游戏中所使用的音效、音乐和视频。
    音效和音乐是用来实现游戏中的声音表现的。音效通常指短小的声音效果,例如碰撞或爆炸的声音;音乐则通常指长时间播放的,用来营造气氛的背景音。要使用多媒体文件,需要先点击项目库右上角的加号,打开多媒体面板;然后再导入文件。目前在音频文件方面,唤境Evkworld支持ogg、m4a、mp3这三种格式;视频文件的支持目前尚在研发中。

  • 字体文件:在游戏制作中往往会用到多种字体;和编辑软件不同,唤境引擎不支持直接读取系统中的字体,因此在制作中,需要把待用的字体上传到编辑器内才能使用。这样做的好处是,打包游戏时,字体会随整个工程文件一起打包进去,即使玩家设备中没有安装游戏内的字体,也不会影响这个字体在游戏内的表现。添加字体文件的流程与添加多媒体文件相似,同样是在项目库进行类似操作。目前唤境Evkworld仅支持ttf格式的字体文件。