学 Lua: 编程课程 应用图标

学 Lua: 编程课程

教育 · 免费 · iOS & Android · CoddyKit

学 Lua: 编程课程 — 在手机上编写 20 款小游戏,学习 Lua 编程

学 Lua: 编程课程 是一门免费的 iOS 和 Android 课程,带你学习 Lua 编程,从第一个 print() 一直到元表和协程。手机上运行着 Lua 5.3 解释器,因此内置 Lua 编辑器无需电脑即可使用;Pong、Snake 和 Tower Defense 等 20 款引导式小游戏会检验你的代码是否真正按预期运行。40 门课程和 159 节短课由 AI Mentor 提供支持。

App Store — 免费下载Google Play — 免费下载
价格
免费,可升级至 Pro
平台
iOS 和 Android
语言
22
年龄分级
4+
需要
iOS 15.1 或更高版本
App Store
4.3 ★ (13)
Lua Academy 主屏幕,包含每日连续学习记录、Lesson、Quiz、Cards 和 Interview 快捷入口、Global Leaderboard,以及显示 Code Your First Obby 和 Pong 的 Your Games 区域代码编辑器,已打开 main.lua,显示 print("Hello, Coddy!"),并提供 AI 工具、复制、保存和查找按钮,以及一排符号键
40课程,A1 至 C1
20引导式小游戏
Lua 5.3手机上的解释器
这是 Lua 课程,不是游戏引擎。

学 Lua: 编程课程 教授的是 Lua 语言本身,并且明确说明了这一点。它不是 Roblox,不是游戏引擎,也不隶属于 Roblox Corporation。Roblox 脚本使用 Luau 编写,而 Luau 是一种基于 Lua 构建的语言,因此你在这里练习的基础知识,与 Roblox Studio 脚本所使用的基础知识相同。

这是什么

学 Lua: 编程课程 是一款免费的 iOS 和 Android 应用,用于学习 Lua 编程。它包含 40 门课程和 159 节短课,内容从初级(A1)一直到高级(C1);还提供内置 Lua 编辑器,可在手机上运行 Lua 5.3 解释器,以及 20 个引导式小游戏项目、60 个编程任务和 AI Mentor。这是一门 Lua 语言编程课程,不是游戏引擎,也不隶属于 Roblox。

应用内

界面展示

Lua Academy 主屏幕,包含每日连续学习记录、Lesson、Quiz、Cards 和 Interview 快捷入口、Global Leaderboard,以及显示 Code Your First Obby 和 Pong 的 Your Games 区域
首页主屏幕:显示每日连续学习记录和等级,并提供一键进入 Lesson、Quiz、Cards 和 Interview 练习的入口、Global Leaderboard,以及 Code Your First Obby 和 Pong 等你的游戏项目。
代码编辑器,已打开 main.lua,显示 print("Hello, Coddy!"),并提供 AI 工具、复制、保存和查找按钮,以及一排符号键
代码编辑器内置编辑器:在 main.lua 中编写 Lua,使用 AI 工具,复制、保存和搜索内容,通过额外按键行输入符号,并一键运行。
“询问导师”聊天界面,询问“我能如何帮助你?”,并提供解释 Lua 核心概念、给出提示、测试你的知识和制定学习路线图等提示
AI 导师聊天“询问导师”会回答你的问题,并从以下建议开始:解释核心概念、分享提示、测试你的知识,或制定 Lua 学习路线图。
挑战界面显示世界编程挑战倒计时,并提供参加当前 Lua 课程挑战、其他挑战和使用代码加入等选项
挑战“挑战”标签页:参加已安排的世界编程挑战赛,基于当前 Lua 课程开始对战,浏览其他挑战,或使用代码加入挑战。
任务界面提供简单、中等和困难筛选项,以及“基础知识”“字符串”和“表”等主题标签,并列出“你好,Lua!”“变量与打印”和“算术基础”等任务
任务任务是简短的评分练习,可按难度和主题筛选,内容从“你好,Lua!”“变量与打印”和“算术基础”开始。

课程

Lua 课程涵盖的内容

共 40 门课程和 159 节短课,课程名称取自应用自己的课程列表,内容从编写第一个脚本一直延伸到将 Lua 嵌入其他程序。

  1. 欢迎学习 Lua 与 Lua 基础

    了解 Lua 是什么以及它在哪里运行,然后学习变量、类型、运算符、数字和数学库。

  2. 控制流、函数与表

    if、elseif 和 else,while、repeat-until 和 for 循环,多返回值与变长参数,以及用作数组、字典和记录的表。

  3. 字符串、元表与错误处理

    学习字符串库和模式匹配、元表,以及 __index 和 __add 等元方法;还会学习使用 pcall 和 xpcall 进行错误处理。

  4. 模块、协程与面向对象 Lua

    学习模块与 require、使用 resume 和 yield 的协程,以及基于元表构建的类和继承。

  5. 闭包、迭代器与游戏逻辑

    学习闭包与上值、自定义迭代器和生成器,以及用于事件系统和游戏行为的 Lua 脚本。

  6. 使用 LÖVE 开发游戏

    使用 LÖVE 框架和 Lua 构建 2D 游戏,同时学习使用 busted 进行单元测试。

  7. 游戏之外的 Lua

    学习 Redis 脚本、Neovim 插件、LuaSocket 网络编程,以及在 Nginx 中通过 OpenResty 使用 Lua。

  8. 高级 Lua

    学习内存管理和弱表、在 C 中嵌入 Lua、LuaJIT 性能与 FFI、沙盒,以及构建领域特定语言。

工作原理

课程如何进行

课程内容简短,每节课都会以你亲自编写并运行的代码收尾。课程本身需要互联网连接。

  1. 学习一节短课

    打开一门课程并阅读其中一节:几段理论讲解,以及课程代码框中的示例,例如局部变量如何将一个值保存在某个代码块内,而不会影响程序的其他部分。

  2. 在编辑器中运行你自己的 Lua 代码

    代码编辑器会在手机上即时运行你的脚本,并显示清晰的错误信息,因此拼写错误会立刻暴露出来。Lua 速查表、测验和闪卡复习则涵盖了你需要记住的知识。

  3. 一步步制作游戏

    在游戏项目中,你需要为每个步骤编写几行代码,应用会检查游戏是否真的实现了相应效果:球会移动,分数会增加。如果卡住了,可以获取提示或查看解答。

包含内容

应用内有什么

40

课程,A1 至 C1

159 节短课,内容涵盖变量和控制流、闭包、元表、协程、在 C 中嵌入 Lua 以及 LuaJIT。

20

引导式小游戏

Pong、Snake、Flappy、Brick Breaker、Space Shooter、Maze Escape、Tower Defense 等更多游戏,按照经过检查的步骤逐步完成。

Lua 5.3

手机上的解释器

无需电脑,也无需进行任何设置,即可在内置编辑器中编写并运行 Lua。

60

编程任务

难度从易到难的任务,可赚取 XP;此外还有三条 obby 风格的路线,在简化模拟器中练习 Roblox 风格的脚本模式。

AI

AI Mentor

你可以询问课程内容或错误信息,并获得清晰的解释。免费账号每天可在课程中提出 3 个 AI 问题。

每日

World Coding Challenge

每天进行三轮全球挑战,通过连续打卡、XP 和进度追踪帮助你保持规律练习。

背景

Lua 有哪些用途?它适合作为第一门编程语言吗?

Lua 是一种小巧、快速的脚本语言,专为嵌入其他程序而设计。因此,它常被用作许多游戏的脚本层,也出现在 LÖVE(Love2D)2D 游戏框架、Neovim 插件、Redis 脚本和嵌入式设备中。Lua 的语法简洁易读,核心概念也只有少数几个,因此很适合作为入门语言。不过,它唯一的数据结构,以及它实现面向对象代码的独特方式,都值得你有意识地专门学习,而不是在不知不觉中摸索。

表唯一的数据结构

Lua 没有单独的数组、字典或记录类型。一个表可以同时扮演这三种角色,因此只需掌握一个概念,就能处理列表、键值映射以及之后要构建的对象。要读懂实际的 Lua 代码,最重要的就是熟练使用表。

元表和元方法Lua 实现对象的方式

Lua 没有内置的 class 关键字,而是允许一个表携带另一个表,由后者决定它在被索引、执行加法或打印时的行为。面向对象编程、继承和运算符重载,都建立在这一机制之上。

协程主动暂停函数

协程是一种可以在执行到一半时暂停、将控制权交还出去,并在之后从暂停处继续执行的函数。在游戏中,这是一种自然的脚本编写方式:你可以让过场动画或敌人行为等待几帧,同时不会冻结其他部分。

Lua 和 Luau有关联,但并不完全相同

Luau 是一种源自 Lua、由 Roblox 使用的语言,并加入了类型注解等额外功能。两者中的变量、循环、函数和表的行为相同,因此 Lua 基础可以直接迁移过去;而 Luau 的特有功能则可以在此基础上继续学习。

是否适合

适合哪些人——不适合哪些人

如果你符合以下情况,就很适合

  • 想从头开始学习 Lua 编程,并希望在编写每个概念的代码前先了解清楚它
  • 喜欢通过完成一个小游戏来学习,而不是阅读参考手册
  • 玩 Roblox,并想在电脑上打开 Roblox Studio 之前先了解脚本背后的语言
  • 需要将 Lua 用于 LÖVE、Neovim、Redis 或嵌入式工具
  • 每天只有一些零碎时间,更喜欢适合短时间学习的课程

如果你符合以下情况,这不是适合你的工具

  • 期待获得一个游戏引擎或 Roblox Studio 的替代品:这是一门语言课程
  • 需要离线学习课程,因为这些课程需要互联网连接
  • 希望所有内容都免费:第一门课程、3 个游戏项目和 2 个任务免费,免费版本会显示广告
  • 已经每天编写 Lua,并想要一本参考手册

问题

常见问题

在手机上学习 Lua 编程的最佳方式是什么?

可以立即运行的短课程非常适合在手机上学习。学 Lua: 编程课程 提供 40 门课程和 159 节课程,内置编辑器可在设备上运行 Lua 5.3 解释器,还有 20 个会逐步检查代码的小游戏。你可以在 iOS 和 Android 上免费开始学习。

使用这款应用学习 Lua 需要电脑吗?

不需要。Lua 解释器运行在手机上,因此你无需安装任何东西,就能在内置编辑器中编写并运行代码。之后,当你使用 LÖVE 框架或编写 Neovim 插件时,电脑会派上用场;课程会讲解这些内容,但它们需要在桌面设备上运行。

学 Lua: 编程课程 和 Roblox 是一回事吗?

不是。这是一门 Lua 编程课程,并非由 Roblox Corporation 制作,也不受其认可或与其有关联。Roblox 脚本使用 Luau,这是一种基于 Lua 构建的语言,因此你在这里学到的变量、循环、函数和表都可以迁移使用。课程还提供 3 条障碍赛风格的学习路线,在简化版模拟器中练习 Roblox 风格的模式,作为入门准备。

Lua 适合作为第一门语言学习吗?

Lua 是较为精简的语言之一,语法简洁,并且只有一种主要数据结构——表,因此入门时需要记忆的内容更少。更难的部分会在后面出现,例如元表和协程。学 Lua: 编程课程 按 A1 到 C1 的顺序安排 40 门课程,让你在掌握基础后再接触这些概念。

我可以制作哪些小游戏?

这里有 20 个引导式游戏项目,包括 Pong、Snake、Flappy、Brick Breaker、Space Shooter、Maze Escape 和 Tower Defense。每一步都会要求你编写几行代码,然后检查游戏是否实现了相应功能,例如让球移动或让分数增加。遇到困难时,你可以查看提示或完整解决方案。

除了游戏之外,Lua 还可以用来做什么?

Lua 被嵌入许多程序中,作为脚本层使用。除了游戏逻辑和 LÖVE 游戏,它还可用于 Neovim 插件、Redis 脚本、嵌入式工具,以及通过 OpenResty 运行在 Web 服务器中。学 Lua: 编程课程 的高级课程都会涉及这些应用场景。

AI 导师如何提供帮助?

当课程内容或错误消息令人费解时,你可以询问 AI 导师并获得清晰的解释。免费账户每天可在课程中提出 3 个 AI 问题,Pro 则取消次数限制,并额外提供 AI 课程生成器和 AI 代码审查功能。

学 Lua: 编程课程 是免费的吗?

这款应用可从 App Store 和 Google Play 免费下载。免费版本包含第一门课程、代码编辑器、3 个游戏项目、2 个任务、测验和速查表,但会显示广告。Pro 提供每周、每月或每年订阅,可解锁全部课程、全部 20 个游戏项目和 60 个任务、无限次使用 AI 导师、带证书的最终考试,以及无广告体验。

可以离线使用吗?

Lua 解释器运行在手机上,但课程需要互联网连接。学 Lua: 编程课程 适合在联网时学习,并在阅读课程后直接运行代码。

支持哪些语言和设备?

学 Lua: 编程课程 可在运行 iOS 15.1 或更高版本的 iPhone 上使用,也支持 Android;其界面提供 22 种语言,并获得 4+ 评级。

开始使用

今天就运行你的第一个 Lua 脚本

在 iOS 和 Android 上可免费开始,支持 22 种语言。

App Store — 免费下载Google Play — 免费下载
最近审核日期 · 由 CoddyKit 发布 · 隐私政策
可在 iOS 和 Android 上使用。