meta data for this page
  •  

📚 差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

后一修订版
前一修订版
reference:gameworld [2023/03/15 19:11] – 创建 - 外部编辑 127.0.0.1reference:gameworld [2025/07/17 15:42] (当前版本) – 移除 bibiboxs
行 1: 行 1:
-<markdown> 
-# 游戏世界及地图 
  
-**游戏世界及地图**表示在`世界场景(World.Scene)`下加载的《沙盘引擎》地图`.semap文件`,在两者加载集合对的基础上呈现的沙盘世界。 
- 
-> 无论是针对模组开发者还是想要更多了解的玩家,根据自身需要查阅本文档会提升对引擎的了解。 
- 
- 
-## 世界场景关系 
- 
-**游戏世界**可以理解为是一个虚拟世界的载体,是由**世界框架机制+游戏地图两者**组成的最终内容。 
- 
-其中**世界框架**更多表示这个“世界”的玩法、逻辑、展示效果等,例如角色、载具、世界天气时间这些的控制,都属于**世界框架内容**。 
- 
-除此之外,**游戏地图**更多表示游戏世界内的具体展示,比如某处放置着建筑、角色、载具等是固定的,**任何不同的地图都可以被世界框架加载**。 
- 
-> 简单来讲,**世界框架**相当于“上帝”,**游戏地图**相当于我们生存的“星球(地球)”,“上帝”控制着世界的变化和规则,地球主要负责展示这个星球应有的场景(树木、建筑等)。 
- 
- 
- 
-## 世界实例 
- 
-在沙盘引擎世界中,通常可以被用到“世界实例”的地方只有**主菜单界面(VirtualWorld虚世界)**与**游戏场景世界(World)**。 
- 
-| 世界           | 场景                                                         | 
-| -------------- | ------------------------------------------------------------ | 
-| 主菜单界面世界 | 只在主菜单生效的一个世界,通常是为了让主菜单更有生机<br />或者可配合客户端在主菜单的功能,实现镜头跟随之类的菜单效果<br />(因为这是主菜单世界,所以它是一个虚世界,同时也没有网络连接) | 
-| 游戏场景世界   | 任何关于这个模组的玩法都将在这个世界主要呈献<br />也就是说,这是表示玩家进行实际游玩的世界场景,任何游戏玩法都将在这里实现<br />(因为这是游戏场景世界,所以这里的一切都是会网络同步的) | 
- 
-*目前沙盘引擎版本之下,除了以上所列举的两种情况外,几乎不会再有其他和“世界”有关的内容。* 
- 
- 
- 
-### 虚世界实例 
- 
-在沙盘引擎开发流程中,控制脚本逻辑的只有Client.js和World.js主要入口(详情参考[模组和脚本开发](scripting "模组和脚本开发"))。 
- 
-但是在某些情况下,模组开发者可能希望主菜单界面世界也需要相对复杂的效果。 
- 
-> 比如:开发者可能想在主菜单时,实现点击【商店】按钮后不仅会弹出商店的GUI界面,而且会将游戏内的视角转移到【商店区域】,同时商店视角内会有一个角色在做动作等。 
- 
-这就无疑除了Client.js控制镜头外,还需要对World.js内的某个Character进行`SetAnim()`等函数的处理(或更多复杂的效果),但是World.js只负责处理【游戏场景世界】(参考[引擎场景空间](Developer/mod/scene "引擎场景空间")),这就需要**虚世界实例**功能的存在。 
- 
-虚世界其实和游戏场景世界没有任何区别,但是它不会遵循World.js的脚本来执行,而是处于一个“没有脚本控制”的状态,这就需要开发者通过API为虚世界指定一个VirtualWorld.js脚本(脚本名随意,这里只是举例),此脚本与World.js可实现的功能完全一致,作用只是强制虚世界执行**这个世界脚本**的世界代码,而不是World.js*(因为**World.js**只负责游戏场景世界的逻辑,应该只把游戏内真正的玩法放在这里)*。 
- 
- 
- 
-## 游戏地图(.semap) 
- 
-在沙盘引擎的设计概念中,**游戏地图**是一个搭配**世界实例**共同使用的重要资源。 
- 
-游戏地图资源`.semap`可以被几乎任何模组所加载和使用, 
- 
- 
-</markdown>