#游戏引擎 #2D游戏 #独立 #游戏 #背景 #对象 #sdl2

y-craft

使用X-Craft引擎制作您梦想中的2D游戏体验

4个版本

0.3.0 2024年2月22日
0.2.2 2024年2月22日
0.2.1 2024年2月20日
0.2.0 2024年2月20日

#1018 in 游戏开发

Download history 5/week @ 2024-03-13 5/week @ 2024-03-27 13/week @ 2024-04-03 4/week @ 2024-04-24 97/week @ 2024-05-01

91 每月下载次数

GPL-3.0 许可证

7MB
864

包含 (WOFF字体, 54KB) GeistVariableVF.woff2, (WOFF字体, 42KB) Geist-Black.woff2, (WOFF字体, 42KB) Geist-Bold.woff2, (WOFF字体, 41KB) Geist-Light.woff2, (WOFF字体, 42KB) Geist-Medium.woff2, (WOFF字体, 41KB) Geist-Regular.woff2 以及更多.

Y-Craft

描述

这是x-craft引擎的Rust版本。这里是引擎的持续开发所在。X-Craft是一个已废弃的项目。

使用Y-Craft引擎制作您梦想中的2D游戏体验。

部分受GameMaker引擎的系统启发,但完全基于源代码(Rust),Y-Craft引擎希望成为来自编程背景的独立游戏开发者的理想引擎。

您不再需要弄清楚如何将抽象集成到您选择的引擎中;在常规代码中构建它们,并通过默认方式与引擎集成!

工作原理

Y-Craft游戏有几个不同的组成部分。

首先,您加载资源:图片、字体和音频文件。您只需将源和几个参数提供给运行函数。

然后是游戏对象。游戏对象是您定义并提供行为的自定义结构体。它们可以通过碰撞和更新函数相互交互,但通常是独立的。它们可以使用包含动画帧的精灵创建。请参阅示例以查看对象设计。

然后是房间。房间仅仅是对象的集合。房间可以被设置为具有恒定状态(持久)或在过渡时重置。

资源、房间和游戏对象都由您自己的枚举索引。将房间和资源的容器传递给app::run函数以启动循环。

构建

要求

  • Rust
  • SDL2开发库
  • Linux*
    • *它应该可以在*nix、MacOS和Windows上运行(也在这个上进行了测试),但只有Linux是官方支持的。其他平台可能不会在问题中获得帮助

注意

  • Nix用户可以通过nix-shell创建有效的shell。简单易行。
  • 对于Windows用户来说,事情从未如此简单。要获取所需的SDL2开发库,他们需要
    • 从相应的发布页面下载SDL2、SDL2_mixer、SDL2_image和SDL2_ttf库的"*-devel-*-VC.zip"文件。SDL2SDL2_mixerSDL2_imageSDL2_ttf
    • 解压".lib"和".dll"文件,通常位于"lib/x64/"下。
    • 将它们放置在你的Rust库文件夹中。如果使用上面提到的rustup,请将它们放在C:\Users\<你的用户>\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc
    • 有关更多信息,请参阅sdl2 crate GitHub的README。

如果要仅构建库,请执行cargo build --release

要运行示例,请执行cargo run --release --example <example-name>。如果要以这种方式运行,示例的二进制文件将位于./target/release/<你的目标>/examples/<example-name>

要将库包含到你的Rust项目中,我建议直接使用y-craft = "0.<version>"并忽略发布号,因为没有发布会有破坏性变更,只有真正的版本提升。

如果你想要分发你的应用程序,你需要确保目标系统接收SDL2、SDL2_mixer、SDL2_image和SDL2_ttf。在Linux上,这很简单,你可以创建一个包并将依赖项放入发行版的SDL库中。在Windows上,你需要将各种.dll文件放在与二进制文件相同的文件夹中。

示例

  • snake - 一个蛇的克隆。填满整个屏幕即可获胜。不要碰到墙壁或你的身体。
  • platformer - 平台物理实现的示例以及几个不同引擎特性的测试

依赖项

29MB
~407K SLoC