Skip to content

01 让第一段代码跑起来 ​

生成专用 Lua 工程,在同一次试玩中找到服务端和客户端日志,再修改一句话重跑。

完成这课,你能在输出窗口看到两句自己写的文字,并知道如何让修改后的代码进入试玩。暂时不摆球、不搭 UI。

开始前检查 ​

使用一个专用的空白地图(世界版),不要在已有成品玩法中覆盖入口脚本。世界版与原点版的脚本体系不同。工程操作与同步检查方法见搭建指南:工程、同步与试玩。

1. 生成并打开 Lua 工程 ​

文件:尚未修改代码。操作:在编辑器打开 LUA → 蛋仔开发助手 → 生成工程,选择一个自己能找到的本地文件夹,再用 VS Code 打开生成的工程目录。

预期:在 VS Code 左侧文件树中能看到如下核心结构,其中两个 main.lua 是本课的编辑目标:

text
你的工程目录/
├─ client/
│  └─ main.lua      ← 客户端代码入口(第 3 步修改)
├─ server/
│  └─ main.lua      ← 服务端代码入口(第 2 步修改)
├─ common/          ← 后续存放双端共用的定义(本课暂不修改)
└─ official/        ← 部分版本生成的官方目录(可能没有;若有则保持原样)

首次打开没有 data/ 或 EggyAPI.lua 完全不影响本课。若目录不同,先对照搭建指南确认自己打开的是生成工程目录。

2. 写服务端的第一句话 ​

文件:server/main.lua。操作:整文件替换为下列内容并保存。

lua
-- @runtime server
-- [服务端入口] 打印属于服务端运行环境的第一条日志,确认服务端脚本成功加载
print("[推球][server] 我的第一段代码运行了")

print 把括号中的内容送到输出窗口;双引号圈起来的是文字。以 -- 开头的是注释,不会打印。server 表示服务端:后续由它决定是否命中、是否得分。

预期:文件保存在 server 文件夹内,文字周围的引号和括号成对,不是中文引号。

3. 写客户端的第一句话 ​

文件:client/main.lua。操作:整文件替换为下面内容并保存。

lua
-- @runtime client
-- [客户端入口] 打印属于客户端运行环境的第一条日志,确认客户端脚本成功加载
print("[推球][client] 我的第一段代码运行了")

client 是当前玩家这一端,后续负责输入和画面显示。两个 main.lua 是不同文件,它们会分别运行,不能合成一个文件。

4. 同步、试玩、核对 ​

文件:刚保存的两个 main.lua。操作:确认开发助手连接的是这张教程地图,并按搭建指南确认代码已同步;再开始试玩,打开输出窗口搜索 [推球]。

VS Code 开发助手工作流要确认插件同步成功;使用 CLI 的作者保存文件后还需要 code push。编辑器试玩读取的是编辑器中的代码,只保存到磁盘不一定已同步。第一轮按搭建指南中的一种工作流完成即可。

试玩画面:左上角可见“日志”入口(带虫子图标)

点击左上角的“日志”入口打开浮窗,在搜索框中输入 [推球] 过滤日志。

预期日志:

text
[推球][server] 我的第一段代码运行了
[推球][client] 我的第一段代码运行了

先后顺序可以不同。它们必须来自这一次试玩。只看到一端时,先核对文件位置,再找当前输出中的第一条错误,最后确认同步目标;不要用旧日志判断新代码。

自己改一处 ​

文件:client/main.lua。操作:只把引号里的“我的第一段代码运行了”改成“这是我的推球游戏”。先预测哪一端日志会变化,再停止试玩、保存同步、重新试玩。

提示:不要改 print,也不要动 server/main.lua。答案:只有带 [client] 的那句变化,服务端那句仍是原文。若两句都没变,回到同步步骤;若报语法错,检查引号是否被删掉。

恢复:用本页两个完整代码块重新覆盖文件。

保存进度 ​

本课先认识入口。Game API和双端与逻辑帧专题可在需要时查阅。