1 个不稳定版本

0.0.6 2021年8月21日

453数学

MIT 许可证

630KB
13K SLoC

spwnnew

SPWN 语言

GitHub license GitHub stars GitHub all releases Discord GitHub tag (latest by date) Open issues

Geometry Dash 触发器的语言。使用代码轻松创建关卡。

SPWN 是一种编译成 Geometry Dash 关卡的编程语言。这意味着您不仅可以通过 GD 编辑器中的视觉表示来创建关卡,还可以使用“口头”和抽象化的表示来创建关卡。这对于使用 GD 触发器特别有用,因为如果您想制作复杂的东西,那么它并不适合游戏编辑器中的图形工作流程。

  • 官方 SPWN 文档 - 链接
  • 文档仓库 - 链接
  • 官方 SPWN Discord 服务器 - 链接

安装 - 如何安装

您可以使用适用于您的操作系统的安装程序,也可以从源代码构建 SPWN。请注意,从源代码构建将使您能够访问新的功能和错误修复,但 可能是不稳定的

Windows

  1. 最新版本 下载 .msi 文件。
  2. 打开 .msi 文件并按照安装向导操作。

MacOS

  1. 最新版本 下载 .pkg 文件。
  2. 打开 .pkg 文件并按照安装向导操作。
  • 注意: 如果您收到无法打开来自未识别开发者的文件的消息,请打开 '系统偏好设置',然后点击 '安全与隐私',在 '常规' 菜单中点击 '任何方式打开'

Linux

Debian (Ubuntu, Mint, Elementary, ...)
  1. 最新版本 下载 .deb 文件(基于 Debian)或 .pkg.tar.zst 文件(基于 Arch)。
  2. 使用 dpkg 安装 Debian 软件包
sudo dpkg -i spwn_0.0.6-0_amd64.deb
Arch (Manjaro, Artix, ...)
pacman -U spwn-0.0.6_amd64.pkg.tar.zst
  • 或者,您可以从 AUR 安装 SPWN 二进制文件(用 yay 替换您选择的辅助工具)
yay -S spwn-bin

从源代码编译

  1. 从该存储库下载源代码
  2. 解压缩 .zip 文件
  3. 如果您还没有安装 rust,请安装它
  4. 在终端中打开解压缩的文件夹
  5. 运行 cargo build --release
  6. 编译的二进制文件放在 target/release

使用 SPWN - 设置

好吧,不要再说闲话了,我们如何实际使用 SPWN 呢?

SPWN 代码可以在任何代码编辑器中编写,但为其编写了 SPWN 扩展或插件的编辑器有 Visual Studio CodeSublime TextVim

VSCode

导航到 VSCode SPWN 语言支持 并点击安装。在 VSCode 中,点击启用,然后创建一个扩展名为 .spwn 的新文件

  • 注意:确保文件与 VSCode 应自动更改的语言语法相同,但如果不更改,请导航到屏幕右下角,点击 选择语言模式,然后选择 SPWN。
Sublime Text

打开 Sublime Text 并打开命令面板...通过从工具下拉菜单中选择命令面板。在打开的菜单中键入安装,这将导致显示安装 Package Control 选项。按 Enter 或左键单击条目进行安装。再次打开命令面板,键入 'install'。当 Package Control: Install Package 被突出显示时按 'Enter',然后当 SPWN Language 被突出显示时按 'Enter'。

Vim

访问 spwn().vim! 并遵循该页面上的说明。

其他编辑器

对于任何其他具有语法高亮的编辑器,大多数 C 类型语法高亮方案都可以正常工作。

使用 SPWN - 如何运行 SPWN 代码

前往 文档 创建一个简单的程序,如下所示

test = 5g
-> test.move(5, 100, 0.25)
test.move(10, -10, 2)

保存文件,然后在终端中输入 spwn build YOURFILENAME.spwn。确保在此过程中关闭 GD。运行此命令后,打开 GD,并修改级别内容。前往文档了解如何使用 SPWN 编程。

注意:SPWN 在级别顶部生成触发器,因此您可能看不到任何差异。

使用 SPWN - 命令行参考

以下是 SPWN 命令行子命令和标志的列表。此信息也可以在命令行中通过键入 spwn help 获取。

子命令
build [script file], b [script file]
Runs/builds a given file

doc [library path]
Generates documentation for a SPWN library, in the form of a markdown file

version, -v, --version
Gets the version of spwn
标志
--console-output, -c
Makes the script print the created level into the console instead of
writing it to your save file

--no-level, -l
Only compiles the script, no level creation at all

--no-optimize, -o
Removes post-optimization of triggers, making the output more readable,
while also using a lot more objects and groups

--level-name [name], -n [name]
Targets a specific level

--live-editor, -e
Instead of writing the level to the save file, the script will use a
live editor library if it's installed (Currently works only for MacOS)

--save-file [file], -s [file]
Chooses a specific save file to write to

--include-path [folder], -i [folder]
Adds a search path to look for libraries
示例

spwn build addition.spwn --level-name add 构建名为 addition.spwn 的文件并将其写入名为 add 的级别。

spwn build subtraction.spwn --no-level 构建 subtraction.spwn 文件,但不写入级别。

spwn build AI.spwn -c 构建 AI.spwn 文件并将级别字符串输出到控制台。

发布前的待办事项

  • 完成可变变量
  • 函数参数、变量定义等的类型注解
  • as 用于自动更改类型的运算符
  • 完成文档
  • break/continue 语句
  • 操作顺序
  • 字符串中的转义字符
  • 修复编译后的优化

在某个时间点待办

  • 为Windows实现实时编辑功能
  • 使其在Linux上运行
  • 嵌套注释
  • 获取和编辑对象和触发属性

享受SPWN!

依赖项

~10–20MB
~258K SLoC