45次发布

使用旧Rust 2015

0.0.46 2024年5月26日
0.0.45 2023年11月24日
0.0.44 2022年8月23日
0.0.43 2022年7月21日
0.0.1 2014年12月31日

#2 in 多媒体

Download history 157/week @ 2024-05-24 17/week @ 2024-05-31 9/week @ 2024-06-07 3/week @ 2024-06-14

2,698 每月下载量

Zlib 许可证

460KB
8K SLoC

RustAllegro

Build Status

A thin Rust wrapper of Allegro 5.

游戏循环示例

extern crate allegro;
extern crate allegro_font;

use allegro::*;
use allegro_font::*;

allegro_main!
{
    let core = Core::init().unwrap();
    let font_addon = FontAddon::init(&core).unwrap();

    let display = Display::new(&core, 800, 600).unwrap();
    let timer = Timer::new(&core, 1.0 / 60.0).unwrap();
    let font = Font::new_builtin(&font_addon).unwrap();

    let queue = EventQueue::new(&core).unwrap();
    queue.register_event_source(display.get_event_source());
    queue.register_event_source(timer.get_event_source());

    let mut redraw = true;
    timer.start();
    'exit: loop
    {
        if redraw && queue.is_empty()
        {
            core.clear_to_color(Color::from_rgb_f(0.0, 0.0, 0.0));
            core.draw_text(&font, Color::from_rgb_f(1.0, 1.0, 1.0),
                (display.get_width() / 2) as f32, (display.get_height() / 2) as f32,
                FontAlign::Centre, "Welcome to RustAllegro!");
            core.flip_display();
            redraw = false;
        }

        match queue.wait_for_event()
        {
            DisplayClose{..} => break 'exit,
            TimerTick{..} => redraw = true,
            _ => (),
        }
    }
}

文档

docs.rs。请注意,它非常不完整。您可能会在这个时候相当严重地参考Allegro的 文档

包含的包有

包装器

绑定

示例

通用使用说明

allegro-sys 包(以及,通过传递,其余包)通过解析C头文件来检测要绑定的Allegro版本。构建脚本会在一些常见位置查找它,但有时您需要通过在调用 cargo build 时指定 ALLEGRO_INCLUDE_DIR 环境变量来帮助它。此目录应包含包含所有头文件的 allegro5 目录。构建脚本将定义以下两个元数据条目,依赖于它的crates可以使用这些条目来确定使用的版本

  • sub_version - Allegro的子版本(例如,对于5.1.10,子版本是1)

  • wip_version - Allegro的wip版本(例如,对于5.1.10,wip版本是10)。

请注意,Core::init() 将尝试验证绑定是否与您链接到的库版本相对应。

以下是一些可能有用的特性

  • link_none - 不要尝试链接标准 Allegro 库,如果你想要链接单体库或满足其他需求。
  • link_debug - 链接到 Allegro 库的调试版本。可以与 link_static 结合使用。
  • link_static - 链接到 Allegro 库的静态版本。注意,你需要自己链接各种依赖库。可以与 link_debug 结合使用。

此外,你可以通过设置 ALLEGRO_LINK_DIR 来指定链接目录。

Windows 注意事项

RustAllegro 与官方预编译的二进制文件配合良好。首先,从 http://liballeg.org 下载官方二进制文件。你需要匹配 Rust 安装程序的 ABI。32 位 GNU ABI 可以加载 Allegro 32 位 MSVC 二进制文件,但否则你需要精确匹配平台和 ABI。假设你将二进制文件提取到 C:/allegro。该目录将包含包含、bin 和 lib 目录。要从 RustAllegro 的 examples 目录编译和运行 RustAllegro 示例,请执行以下操作:

  • 如果你使用 MSYS
export ALLEGRO_INCLUDE_DIR=C:/allegro/include
export ALLEGRO_LINK_DIR=C:/allegro/lib
cargo build
  • 如果你直接使用 cmd
set ALLEGRO_INCLUDE_DIR=C:/allegro/include
set ALLEGRO_LINK_DIR=C:/allegro/lib
cargo build

现在你需要将 Allegro DLLs 复制到生成的可执行文件旁边(这些文件可能位于 target/debug 目录下)。现在你应该能够运行示例(确保从 RustAllegro 的 examples 目录运行它们,这样它们就可以找到它们所需的各种数据文件)。

依赖项

~660KB