概述
一个游戏可能包含若干个游戏场景,在场景编辑器中预先编辑好后即可在游戏内使用。
场景包含场景图层显示、摆放场景对象和场景相关触发事件。
部分游戏效果示例演示
点击下方文字可弹出游戏演示效果
【图块组成的场景】 #在线预览
【整张图片的场景】 #在线预览
【横版场景】 #在线预览
【多层远景】 #在线预览
网格支持
在设置中设定好网格像素大小后(菜单-设置-场景模块),每个格子的像素尺寸就是固定的这个网格像素大小(如48x48或者32x32)。
网格一般在编辑器中用于绘制地图和数据信息等等,而在实际游戏玩法实现里可以由开发者选择参考此属性或不参考此属性。
部分游戏模板无需网格,通常会关闭掉网格功能(菜单-自定义编辑器-常规设置-系统功能-网格显示)。
场景图层
图层分为:图块图层
、图片图层
、网格数据层
。
图层没有设置上限,可以自由增加删减,但是使用的图层越多则会越消耗性能与占用内存空间。
图层可以设置属性,如偏移、循环、自动移动(比如制作雾气效果)、远景比例(比如制作多重远景的效果)等等。
图块素材也可以设置网格数据层,以便重复使用:比如对树根涂绘了障碍数据,那么它放置在场景对上的任何地方都具备了障碍的属性(障碍数据层是一种自定义的数据层)。
- 图块图层:支持图块绘制,可以支持任意多种图块素材源绘制在同一个地图上,系统会根据使用到的图块源
- 图片图层:支持直接使用一整张大图作为背景图使用,比如制作远景图
- 网格数据层:一般用于绘制一些辅助计算用的格子范围,比如用于障碍、遮罩、毒气区域等等,可自定义
下图中的房间是使用图块绘制的,而白云则是图片图层。
摆放和查找场景对象
场景对象可以摆放在场景上面,比如作为NPC或装饰甚至是放置在场景上的界面等等(概念详情可以参考 场景对象)
同时地图可以使用场景列表来选择对应场景对象,根据对象的名称或ID来查询,双击后可以锁定到这个对象身上,方便快速找到需要的对象
场景自定义触发事件支持
支持绑定自定义的触发事件类别,比如进入场景的事件、离开场景的事件等
比如《苍之羽》模板中有一个名为“进入场景”的触发事件。
高级开发人员可以编写自定义的触发事件类别(菜单-自定义编辑器-绑定的事件页-绑定在场景上的事件页,以及编写脚本程序实现)
关于网络内核的服务端场景
如果是使用GameCreator2DNet制作的游戏或游戏模板的话:
服务器的场景作为逻辑场景,一般管理场景下的所有场景对象、玩家等等。
服务端的场景由于引擎创建,在引擎初始化的时候会创建所有的场景以及场景上的场景对象。
以下使用场合可供参考
- 比如MMOARPG中需要执行场景下所有怪物的逻辑(如监控是否有玩家在怪物周围、追击玩家等等)。
- 比如卡牌对战中进入战斗后玩家都在一个卡牌对战的场景副本中,该副本只存在对战或观战的玩家。
- 比如MOBA类型的游戏,在匹配完成后让所有玩家进入场景副本,并开始执行帧同步逻辑等等。
相关制作数据文件
- 场景列表:asset/json/scene/sceneList.json
- 场景图层设置:asset/json/scene/data/scene{场景ID}.json
- 场景对象/事件等设置:asset/json/server/scene/s{场景ID}.json