1个不稳定版本
0.1.0 | 2021年8月13日 |
---|
9 在 #sylt
每月下载量 48
用于 7 个crate(直接使用4个)
20KB
580 行
Sylt语言
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>
基本用法
-
标志也允许您查看一些调试输出。如果您想调试编译器和运行时,这可能很有用。
-
标志提供更多的调试输出。不要指望看到您自己的程序中的任何内容!
结局
一种具有某种形式静态类型检查的语言,工作起来既简单又快捷。性能应该足够好,以至于您不必真正担心它。
梦想着在游戏运行时自动重新编译和更新游戏。
依赖项
~1.5MB
~36K SLoC