2 个版本

0.3.1 2022 年 2 月 6 日
0.3.0 2022 年 2 月 6 日

图形 API 中排名第 728

MIT 许可证

1.5MB
1.5K SLoC

Rust 881 SLoC // 0.1% comments • Rust 包仓库 TypeScript 733 SLoC // 0.2% comments • Rust 包仓库

Deno SDL2

跨平台绑定到 SDL2。祝您玩得开心!

特性

  • 对视频、图形、字体和混音子系统的绑定。 (使用 rodio 而不是 SDL2_Mixer)
  • 基于 Deno 的 FFI API 构建。旧版本使用 TCP 流。

示例

import { Canvas } from "https://deno.land/x/sdl2/src/canvas.ts";

const canvas = new Canvas({
  title: "Hello, Deno!",
  height: 800,
  width: 600,
  centered: true,
  fullscreen: false,
  hidden: false,
  resizable: true,
  minimized: false,
  maximized: false,
  flags: null,
});

canvas.setDrawColor(0, 64, 255, 255);
canvas.clear();
canvas.present();

for await (const event of canvas) {
  switch (event.type) {
    case "draw":
      // Your game logic
      // ...
      break;
    case "mouse_motion":
      // Mouse stuff
      break;
    case "key_down":
      // Keyboard stuff
      break;
    // ...
    default:
      break;
  }
}

从源代码构建

您需要

  • deno_bindgen CLI 从 main 分支
  • Rust 夜间工具链 + Cargo (1.57.0-nightly)
  • cargo-vcpkg 工具
  • pkg-config (在 *nix) => brew install pkg-config
deno install -Afq -n deno_bindgen https://deno.land/x/deno_bindgen/cli.ts
cargo install cargo-vcpkg

# build vcpkg dependencies
cargo vcpkg -v build

使用以下方式构建

deno_bindgen -- --features "use_vcpkg"

使用 deno_sdl2 的项目

许可证

MIT

依赖项

~23MB
~472K SLoC