界面
概念
定义
界面: 是指用户 当前看到 的游戏窗口内的所有图像画面。
特点
1)脚本名称
界面在脚本中定义为Scene。
也有称呼Scene为 场景、面板 等,你只要了解这个名词即可。
2)界面类型
游戏中,界面类型分为三种:** 战斗**、地图、菜单。
(战斗界面和地图界面内容复杂,通过大量游戏数据拼接而成;而菜单界面内容简单,但是数量特别多,是一套大卡组。)
3)运行方式
系统每次只能运行一个界面,运行时其它界面处于暂停状态。
(系统每次只能运行一张卡片,且每张卡片是单独运行的,不会牵连其他卡片。)
类型
战斗(战斗界面)
1)常见对象
战斗界面的常见对象如下:
(这里只简单分类,方便理解)
2)称呼注意事项
单位是指 敌人/角色/敌方/我方 的统称。
其他文档或插件中,提及 单位/敌人/角色/敌方/我方 这些名词,都默认在 战斗界面中 条件下。 |
3)结构简介
战斗界面中,数据与贴图 是两个分离的定义。
数据对应”单位”,贴图对应”战斗层级”。
离开战斗界面后,单位不一定会被销毁,但是单位贴图一定会被销毁。
设置在某一回合单位才出场,实际上单位一开始就存在,只是后来单位贴图才被创建。
4)战斗层级
战斗界面的层级如下:
(淡紫色部分为多层背景、粒子、魔法圈等 装饰用插件 的插入层)
(图片对象层 指事件指令中的 图片 所在位置)
(层级的细节定义可见后面章节:层级与堆叠级 )
游戏中还存在一个特殊的层级:天窗层。此层级比最顶层还高,在该层级中能够使用 动态屏幕快照 。详细可以去了解下文档:“1.系统 > 大家族-屏幕快照.docx ” |
地图(地图界面)
1)常见对象
地图界面的常见对象如下:
(这里只简单分类,方便理解)
2)称呼注意事项
物体是指 事件/玩家/玩家队员/载具 的统称。
其他文档或插件中,提及 物体/事件/玩家/玩家队员/载具 这些名词,都默认在 地图界面中 条件下。 |
3)结构简介
地图界面中,数据与贴图 是两个分离的定义。
数据对应”物体”,贴图对应”地图层级”。
离开地图界面后,物体不一定会被销毁,但是行走图一定会被销毁。
切换菜单界面时,数据不会变化,但贴图会重建,因此切换菜单不会出现事件消失,但会使得部分贴图消失。
切换地图时,地图界面会进行 数据重读、贴图重建,数据和贴图全部翻新后,实现了不同地图移动的效果。
4)地图层级
地图界面的层级如下:
(淡紫色部分为多层背景、粒子、魔法圈等 装饰用插件 的插入层)
(图片对象层 指事件指令中的 图片 所在位置)
(层级的细节定义可见后面章节:层级与堆叠级 )
游戏中还存在一个特殊的层级:天窗层。此层级比最顶层还高,在该层级中能够使用 动态屏幕快照 。详细可以去了解下文档:“1.系统 > 大家族-屏幕快照.docx ” |
5)物体id规范
使用插件指令,获取 事件id、玩家队员id、载具id 时。
经常会提及找不到时返回-1,若为玩家则返回-2。
这个插件指令的表示方法并不是零散的,而是统一的设定,如下:
类型\id值 | 大于0 | 0 | -1 | -2 |
事件id(event_id) | 正常id值(1表示地图里id为1的事件) | 无效 | 找不到对象 | 表示玩家 |
玩家队员id(follower_id) | 正常id值(1表示玩家身后第1个队员) | 无效 | 找不到对象 | 表示玩家 |
载具id(vehicle_id) | 正常id值(1表示小船,2表示大船,3表示飞艇) | 无效 | 找不到对象 | 表示玩家 |
由于玩家是一个非常特殊的存在,能同时具备事件、玩家队员、载具的相似功能,
所以这里插件指令获取id值时,如果是玩家,都按-2表示。
菜单(菜单界面)
1)常见对象
菜单界面的常见对象如下:
2)结构简介
地图界面中,数据与贴图 不完全分离。
玩家通过确定键或取消键,就能直接切换菜单,使得贴图重建。
窗口中配置的数据,大部分是地图用数据、战斗用数据,比如修改队形,设置装备。菜单用数据属于选项设置。
原始的主菜单的部件结构如下图。(由 3个窗口 组成)由于游戏编辑器中没有定制菜单的渠道,所有可定制的菜单,都是通过插件一个个配置的。
3)菜单层级
菜单界面的层级如下:
(淡紫色部分为多层背景、粒子、魔法圈等 装饰用插件 的插入层)
(层级的细节定义可见后面章节:层级与堆叠级 )
游戏中还存在一个特殊的层级:天窗层。此层级比菜单前面层还高,在该层级中能够使用 动态屏幕快照 。详细可以去了解下文档:“1.系统 > 大家族-屏幕快照.docx ” |
STG(STG界面)
1)定义
STG界面: 指专门用于进行STG战斗的界面。是一个新的完整生态系统。
弹幕射击游戏(STG): 特指飞行弹幕射击的游戏类型。这类游戏以竖版居多,玩家操控一位角色对来袭的大量敌人进行攻击,并在过程中升级、强化自我的能力,最终打败BOSS。弹幕射击游戏对于眼手脑间的配合、玩家控制角色的移动规划能力要求较高。
由于游戏类型的不同,STG界面与战斗界面是两个大的且不同的界面类型。战斗、地图、菜单、STG都是大的生态系统,能够相互组合,所以这里为了专门区分不同领域的对象,从而产生了很多特别的名词称呼。 |
2)常见对象
STG界面的常见对象如下:
3)称呼注意事项
机组是指 敌机/敌机子弹/自机/自机子弹 的统称。
其他文档或插件中,提及 机组/敌机/敌机子弹/自机/自机子弹 这些名词,都默认在 STG界面中 条件下。 |
界面
作用域
界面的作用域根据情况分成下面的类:
游戏全局(战斗+地图+菜单) | 系统 管理器 游戏窗体窗口字符 |
战斗界面 | 战斗 战斗UI单位 技能 |
地图界面 | 地图 地图UI行走图 图块 移动路线 互动物体 物体管理 物体触发 体积 炸弹人 |
菜单界面 | 主菜单 面板控件 标题 |
跨多界面(战斗或地图或菜单) | 动画 UI 对话框 图片 公共事件声音 键盘 鼠标 |
详细说明可以去看看文档 ”0.基本定义 > 插件类型.docx
”
层级与堆叠级
1)定义
层级: 指界面中 固定定义 并且用于区分层次的 贴图。
每个层级都有名字,比如:下层、图块层、中层、图片对象层 等。
堆叠级: 指处于相同层级下,区分贴图先后顺序的 数字参数。
堆叠级也叫图片层级,数字值越大,越在上面。
界面、层级、堆叠级的关系如下图。
2)层级细节
固定的层级: 指界面中黑色字体标注的层级,插件不能扩展该层级的功能。
灵活的层级: 指界面中紫色字体标注的层级,插件能放置各种自定义贴图。
以菜单界面为例,
“菜单前面层”和“菜单后面层”是灵活的层级。
“菜单功能部件”和“底图”是固定的层级。
固定的层级 其实也能扩展一些功能,只是功能没那么灵活而已。比如插件 图片-层级与堆叠层,能将层级 图片对象层 扩展,支持 图片 修改自己所处的层级,放到最顶层,并且能改回到 图片对象层 。 |
3)口语与术语
在平时插件指令和说明中,有一些口语表达的名词:
口语 | 术语定义 | 术语描述 | 脚本参数名 |
战斗层级 | 战斗界面的层级 | 可见前面介绍:战斗层级 | BattleLayer |
地图层级 | 地图界面的层级 | 可见前面介绍:地图层级 | MapLayer |
菜单层级 | 菜单界面的层级 | 可见前面介绍:菜单层级 | MenuLayer |
图片层级 | 堆叠级 | 处于相同层级的贴图,根据堆叠级进行先后顺序排序。 | zIndex |
虽然口语和术语指的都是同一个东西,但是:有的插件指令使用名词“战斗层级”,就不能写名词“层级”,反之亦然。有的插件指令使用名词“图片层级”,就不能写名词“堆叠级”,反之亦然。![]() ![]() |
为什么会称呼为“图片层级”?因为作者我最早写的界面相关插件是 菜单背景 插件(当时还没有“多层”的想法),所以定义层级的时候,就简单用0和1数字来表示菜单前面层和菜单后面层,称为菜单层级,然后资源图片的顺序zIndex也是数字,于是就叫图片层级了。(当时也没有想过会去写专门的 图片类插件 )后来一直都没改,于是便一直用到现在。 |
常见组合
目前来看,界面不外乎就这三种基本元素:战斗、地图、菜单。
一些比较新颖的游戏可能会将元素两两融合:
战斗+地图、菜单 (即时战斗游戏ARPG)
战斗、地图+菜单 (策略类游戏)
战斗+菜单、地图 (文字冒险类游戏galgame)
从脚本层面来看,分离战斗与地图,最显著的作用就是节省计算量。
战斗占计算量多,地图占内存大。如果是即时战斗,由于图像变化多,消耗量大,现在的电脑基本不存在问题,但是手机就是一种挑战了。
当你打开菜单时,因为其它界面是暂停状态,所以繁忙计算中的CPU可以瞬间降下来。这也是为什么卡顿的游戏地图中,只要一打开菜单,瞬间变流畅的原因。
另外,如果一个游戏连菜单都卡顿的话,那就真的是电脑硬件的问题了。
界面理解误区
战斗界面、地图界面、菜单界面是三个完全独立的界面,进入了任何一个界面,其他界面都是暂停状态。暂停状态时,数据无法实时交互。
在地图界面中选择菜单时,许多萌新会误以为是在地图界面中添加了菜单,而实际上,这里已经离开了地图界面。地图的轮廓只是一个地图截屏放在了菜单的背景中而已。