1 个不稳定版本
0.1.0 | 2021 年 8 月 13 日 |
---|
#1659 在 开发工具
33 每月下载次数
在 6 crate 中使用
67KB
1.5K SLoC
Sylt-lang
Sylt 是一种为游戏快闪制作的静态类型检查和动态类型引用计数的编程语言。
为什么会有这个东西?为什么选择这个而不是语言 X?
呃!我们客观上拥有最好的标志。
入门
Sylt 完全用 Rust 编写。有两种主要方法可以使用它。
新仓库
$cargo new<游戏名称>
- 将以下内容添加到您的 Cargo.toml 中
[dependencies.sylt]
git = "https://github.com/FredTheDino/sylt-lang.git"
branch = "main"
features = [ "lingon" ]
- 将以下内容添加到您的
src/main.rs
中
use std::path::Path;
fn main() {
let args = sylt::Args {
file: Some(Path::new("game.sy").to_path_buf()), // or read from args
is_binary: false,
compile_target: None,
verbosity: 0,
help: false,
};
sylt::run_file(&args, sylt::lib_bindings()).unwrap();
}
- 编写你的游戏!这里有一个示例来帮助你入门
x := 0.0
y := 0.0
init :: fn {
l_bind_key("w", "up")
l_bind_key("a", "left")
l_bind_key("s", "down")
l_bind_key("d", "right")
l_bind_quit("quit")
l_bind_key("ESCAPE", "quit")
}
update :: fn delta: float -> void {
x += (l_input_value("right") - l_input_value("left")) * delta
y += (l_input_value("up") - l_input_value("down")) * delta
}
draw :: fn {
rgb :: (sin(l_time()), cos(l_time()), 0.0)
l_gfx_rect! x, y, 1.0, 1.0, rgb
}
start :: fn {
init!
for _ in inf(0) {
_
if l_input_down("quit") {
break
}
l_update!
update! l_delta!
draw!
l_render!
}
}
$ cargo run
随心所欲。
分支
分支 Sylt 并进行修改,使得修改语言、标准库和对 Lingon 的绑定变得容易,后两者可能更有趣。
- 设置分支。 (可选)
- 克隆仓库。
$cargo run<your-game.sy>
基本用法
使用 -
标志也可以让您看到一些调试输出。如果您想调试编译器和运行时,这可能很有帮助。
使用 -
标志可以提供更多调试输出。不要期望从您的程序中看到任何东西!
终局
具有某种形式静态类型检查的语言,易于使用且速度快。性能应该足够好,以至于您不必真正担心它。
梦想着在游戏运行时自动重新编译和更新游戏。
依赖关系
~3.5MB
~43K SLoC