主题
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] 的那句变化,服务端那句仍是原文。若两句都没变,回到同步步骤;若报语法错,检查引号是否被删掉。
恢复:用本页两个完整代码块重新覆盖文件。
保存进度
- 下载第 01 课完整代码:仅两个 Lua 文件与安装说明。
- 通过标准:两端日志出现,改一句话后重新试玩确实变化,并能找到第一条错误。
- 下一课:搭好场地,让碰撞有回应。
