【饥荒随笔】worldgen_main
来源:互联网 发布:人工智能代替程序员 编辑:程序博客网 时间:2024/04/23 19:27
今天来讲一下 worldgen_main.lua
顾名思义,这个文件就是用来构建世界的,里面定义了许多的基本函数
第一行:
package.path = package.path ..";scripts/?.lua"
规定了lua模块的载入路径,关于package.path 在《lua程序设计》里有说,我就不多说了。
下面两行,用来取随机数种子:
--SEED = 372000
if SEED == nil then
SEED= getrealtime()
end
什么是随机数种子?
计算机并不能生成真正的随机数,它提供的随机数函数其实是一个周期很长的函数,用来产生伪随机数。它这个函数接受一个参数,就是我们所说的随机数种子。当种子相同时,它生成的随机数列也相同,所以要生成随机数,这个种子的取用应不同,通常取当前系统的时间,就像饥荒里的一样。
所以,当SEED 为固定的一个值时,它生成的地图是一样的。
紧接着,在这个文件里,又定义了两个函数,loadfn和loadfile 因为在饥荒设计时,为了安全或者其他原因,程序员把这两个函数重新定义,以方便调式。
注:在饥荒里没有fopen函数。
后面就是导入了一些文件,然后定义了与时间有关的几个函数,
function GetTickTime() –获取滚动时间
function GetTime()
function GetTick()
function GetTimeReal()—获取真正的时间
还有定义了脚本处理函数,以方便在代码错误时不会直接退出,而返回错误。
local Scripts = {} --储存已载入的脚本,防止重复调用,以提高性能
function LoadScript(filename) –载入脚本但不运行,并把函数送入table Scripts
function RunScript(filename) -- 运行脚本
function GetDebugString()—输出错误信息
- 【饥荒随笔】worldgen_main
- 【饥荒随笔】事件系统
- 【饥荒随笔】类与界面
- 【饥荒随笔】关于代码的定义
- 饥荒攻略
- 饥荒:mod教程索引
- 【饥荒】介绍一些组件
- 饥荒:在制做mod之前
- 饥荒mod工具的编译
- 饥荒存档自动备份及恢复工具
- 饥荒插件制作应注意的几个问题
- 【饥荒工具】ktools 动画转换工具
- 【饥荒】关于随机地图生成的方式
- 饥荒 出现error during initialization的解决方法
- 饥荒mod物品(食物)(农作物)--02
- 游戏《饥荒》开发架构技术分析
- 饥荒食物 + 物品全制造代码
- 随笔
- JVM内存配置详解
- 【饥荒随笔】类与界面
- PCB板设计中接地经验谈
- Apache DBUtils使用总结
- clearcase check in时遇到Evil Twin found问题
- 【饥荒随笔】worldgen_main
- poj 3469 最小割
- TCP源端口选择算法与列维模型
- iOS8 无法收到APNS问题
- 【饥荒随笔】关于代码的定义
- 快速排序算法分析
- lib和dll的关系
- 【饥荒随笔】事件系统
- android中"=="与equals()的区别