快速开始
本文将和你一起编写一个最简单的 Emuera 程序,来快速熟悉 Emuera 游戏的制作流程。
准备文件
为了能够开发一个最精简的游戏,你至少需要下载 Emuera 游戏引擎。
Emuera 项目地址:https://osdn.net/projects/emuera/
Emuera 官方下载地址:https://osdn.net/projects/emuera/releases/
下载好之后会有一个 zip 压缩文件,解压,并将其中的 exe 文件单独放置在一个空的文件夹中,这个空的文件夹就是我们的游戏根目录,我们用root
来代表。
这样我们就获得了一个工程文件夹,其结构为:
root/
└─ Emuera1824.exe
2
启动程序
如果我们直接启动exe,会得到一个消息框:
新建一个名为CSV
的文件夹后再启动,会弹出消息框:
新建一个名为ERB
的文件夹后再启动,此时程序正常运行。
我们注意到根目录下生成了一个名为emuera.config
的配置文件。其中对 Emuera 游戏引擎进行了配置,若想了解更多引擎配置信息,请移步此处。
程序正常启动后,这样我们根目录的结构就变为:
root/
├─ emuera.config
├─ Emuera1824.exe
├─ CSV/
└─ ERB/
2
3
4
5
运行程序
运行后,程序的输出大致为:
Now Loading
--------------------
()
--------------------
[0] 最初からはじめる
[1] ロードしてはじめる
2
3
4
5
6
7
其中,最后两行是可以点击的,第一行是“新的开始”,第二行是“加载存档”。
我们点击“新的开始”,画面输出:
0
--------------------
関数の終端でエラーが発生しました:Emuera1824
関数"@EVENTFIRST"が見つかりません
※※※ログファイルをroot¥emuera.logに出力しました※※※
2
3
4
5
其中,第1行的0是代表我们的点击所对应的序号是0,这与我们键盘输入0并回车的效果是一样的。
最后三行为报错与提示信息,其大意为:
- 函数的结尾发生了错误;
- 没有找到
@EVENTFIRST
函数; - 日志已输出到根目录下的
emuera.log
文件中。
我们去根目录下打开emuera.log
文件,发现其中记录了游戏引擎的全部输出。
现在我们来解决这个报错。不就是缺少@EventFirst
吗?拿来吧你!
首先,在ERB/
文件夹中新建一个名为Syetem.erb
的文件;并输入以下代码:
该代码含有可期待的错误
@EventFirst
搞定!再运行,出现新的报错:
在预想不到的地方遇到了脚本结尾?简单!预想不到我们就让你预想到:
修改System.erb
:
@EventFirst
Quit
2
再运行,程序没有报错了,然而什么都没有,再点击一下就退出了。
……也算搞定!
现在让我们看看究竟发生了什么:
在第1行,是一个@EventFirst
,这一行进行了一个定义函数操作。其中,第一个字符@
是告诉游戏引擎这一行是定义函数语法的首行。
紧跟着的EventFirst
是函数名,也就是为我们定义的函数取一个名字,有了名字,我们以后就可以通过这个名字找到相对应的函数。若要了解更多关于定义函数的内容,请移步至此处。
第2行有一个英文单词Quit
,即退出。这是个可以单独使用的语句。跟在上一行定义函数的语句后面,代表新定义的函数的内容就是退出。若要了解更多关于 “退出”命令 的内容,请移步至此处。
细心的你可能注意到了,在Quit
前还有两个空格,这样,原本Quit
的Q
是与上一行的@
字符对齐的,现在却被挤到后面,和v
字符对齐了。
有点奇怪,对吧?去掉这两个空格可以吗?
可以!(你可以去掉之后试试)
但! 这不太好~
想象一下:不久后的某一天,你已经是一个熟练的游戏开发者了,每天可以写一万行游戏脚本,但有一天你突然想在脚本的中间某个部分进行一些修改,你翻到脚本的中间,发现每一行都对齐得整整齐齐,你难以一眼就看出层层叠叠的代码逻辑中的从属关系,在这个时候,你也许会想,要是我在写的时候就把代码之间的从属关系用某种规律表现出来了,也许现在我就不用费力地每一行每一行地去分析了。
而合理地缩进(行前空格)就是一个成熟的处理方式!
也许我们不应该在初次见面的时候就聊起这个,但我始终相信,好的习惯从一开始就培养远比中途纠正要好得多~,关于更多脚本风格标准,请移步至 MCS 代码风格。
完全理解了这两行脚本之后,我们联系前面的报错,可以简单地推理出,在点击“新的开始”按钮后,游戏引擎会寻找脚本中的名为EventFirst
的函数,并执行它。
Hello World!
程序运行倒是没有错误了,但我们怎么才能用它做点什么呢?
我们就拿程序的入门:Hello World 来做实验吧。
修改System.erb
:
@EventFirst
Print Hello World!
Quit
2
3
保存文件后启动程序,看见程序正常输出:
Hello World!
搞定!
下一步
现在你已经拥有了一个最为精简的 Emuera 程序了!是不是很简单?
但要做成实际能玩的游戏,还有很多的工作要做,但在那之前,我们就已经有一些显而易见的事情亟待进行:
- 标题一片空白;
- 点击“加载游戏”还是会报错;
- 程序什么事情都没做。
别急别急,罗马不是一日建成的!
让我们移步至教程,来为这个精简的小程序添砖加瓦!