5 个版本
0.1.3 | 2020年5月6日 |
---|---|
0.1.2 | 2020年2月10日 |
0.1.1 | 2020年2月9日 |
0.1.0 | 2020年2月9日 |
0.0.1 | 2020年2月7日 |
#3 in #arcade
2MB
47K SLoC
ale
到 Arcade Learning Environment 的 Rust 接口。
一些游戏,如 Breakout、Asteroids、MsPacman 和 Space Invaders,已打包到库中,以便任何使用它的人都可以运行它们。完整的列表在 https://github.com/trolleyman/ale-rs/blob/master/src/lib.rs#L353-L430。
要求
- CMake (参见 cmake-rs)
Breakout 示例
要播放 Atari 的 Breakout,请运行此命令
cargo run --release --example breakout
控制键
- P: 切换暂停
- A/Left: 按键左移
- D/Right: 按键右移
- Space: "射击"键(触发球)
- R: 重置游戏
ale-sys
到 Arcade Learning Environment 的 Rust 绑定,进行了一些调整。参见 https://github.com/trolleyman/Arcade-Learning-Environment。
差异
zlib
已作为 vendored 包处理,以便更容易编译- C 库已静态链接
xtask
xtask
是一个用于开发的较小子项目。可以通过在存储库的根目录中运行 cargo xtask <subcommand>
来运行子命令。
有两个子命令:gen-bindings
和 download-roms
。
gen-bindings
生成 ale-sys/src/bindings.rs
文件,并需要安装 clang。
download-roms
下载打包的 Atari ROM 文件并输出到 roms/
文件夹中,然后通过 include_bytes!
包含在二进制文件中。这是为了防止版权侵权。此技术类似于 atari-py
使用的技术。