5 个版本
0.0.5 | 2020 年 8 月 4 日 |
---|---|
0.0.3 | 2020 年 8 月 3 日 |
0.0.2 | 2020 年 8 月 2 日 |
0.0.1 | 2020 年 8 月 2 日 |
0.0.0 | 2020 年 8 月 2 日 |
1020 在 游戏开发 中
3MB
284 行
摩奇 🍡
一个面向低功耗移动 Linux 手机/平板的游戏引擎。它用 Rust 编写,并使用 Gtk 和 Cairo!所有绘图都使用一个Cairo 上下文来完成一些非常常见的图形操作。
这个项目虽然是 alpha 版,但可用。如果你想加入,请随意提出问题或提交 PR!
功能
- 触摸
- 屏幕旋转
- 图集
- 动画精灵
限制
- 仅支持 8bpc RGBA png 图像
示例
[dependencies]
mochi = "0.0"
init(include_bytes!("game.gresource"));
let img_mochi = image_from_resource("/game/mochi.png");
let img_mochi_eaten = image_from_resource("/game/mochi_eaten.png");
run_game(move |window, ctx, pointer, delta_time| {
if pointer.is_down() {
ctx.draw_image_centered(window.width / 2.0, window.height / 2.0, img_mochi_eaten);
} else {
ctx.draw_image_centered(window.width / 2.0, window.height / 2.0, img_mochi);
}
});
如何构建一个游戏
Mochi 使用 Glib 资源文件中的资源。这非常简单。只需创建一个 xml 文件,该文件引用了你的图像
<?xml version="1.0" encoding="UTF-8"?>
<gresources>
<gresource prefix="/pong">
<file>ball.png</file>
<file>paddle.png</file>
</gresource>
</gresources>
构建一个 Glib 可以理解的 gresource
文件
glib-compile-resources game.xml
在初始化期间将 game.gresource
的字节内联到你的代码中
init(include_bytes!("game.gresource"));
现在你的游戏在其二进制文件中拥有所需的一切!可以使用你设置的资源路径按需获取图像。
let img_ball = image_from_resource("/pong/ball.png");
依赖项
for gtk/cairo
for sound
sudo dnf install openal-soft-devel libsndfile-devel
在 PinePhone 上编译时内存不足吗?
你可以使用 zram 扩展交换空间
sudo swapoff /dev/zram0
sudo zramctl --reset /dev/zram0
sudo zramctl --find --size 2048M
sudo mkswap /dev/zram0
sudo swapon /dev/zram0
许可证
本项目根据以下许可证之一授权
- Apache 许可证 2.0 版,(LICENSE_APACHE 或 http://www.apache.org/licenses/LICENSE_2.0)
- MIT 许可证 (LICENSE_MIT 或 http://opensource.org/licenses/MIT)
由你选择。
贡献
除非你明确表示,否则你提交给 mochi
的任何贡献,根据 Apache-2.0 许可证定义,将按照上述方式双授权,不附加任何其他条款或条件。
依赖项
~18MB
~412K SLoC