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 使用的技术。