docs.rs failed to build rustraight-0.3.1
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build:
rustraight-0.2.1
rustraight
DXLib にインスパイアされた、Rust 向けシンプル 2D ゲームライブラリです。
wgpu と Win32 API を基盤とし、GPU の低レイヤな知識なしに 2D ゲームを作れる入門者向け API を提供します。
Windows 専用ライブラリです。 グラフィックス・入力・サウンドにそれぞれ DX12 / Win32 / XAudio2 を直接使用しているため、Windows 10 以降が動作要件となります。
特徴
- ウィンドウ & 仮想スクリーン — ウィンドウサイズに依存しない独立した仮想解像度でゲームロジックを記述
- 背景透過ウィンドウ — DX12 DirectComposition + DWM による per-pixel alpha 透過
- スプライト描画 — PNG / JPEG / BMP など WIC 対応フォーマットの読み込みとスケール / 回転 / アルファ / 反転付き描画
- スプライトシート —
load_div_graphでスプライトシートを個別スプライトに分割 - 図形描画 — ピクセル・線・矩形・円・三角形(塗りつぶし・アウトライン)
- ブレンドモード — 通常 / 加算 / 乗算
- サブスクリーン — オフスクリーンレンダーターゲットをスプライトとして利用
- キーボード & マウス入力 — 押している / 押した瞬間 / 離した瞬間を全キー・ボタンで判定
- ゲームパッド入力 — ボタンとアナログスティック (XInput)
- サウンド — WAV(PCM 8/16-bit)の読み込み・再生(XAudio2)
- テキスト描画 — システムフォントまたはカスタム TTF/OTF ファイルによる文字描画
- デルタタイム & 経過時間 — フレームレート非依存の移動処理を標準サポート
- オーバーレイウィンドウ — メインウィンドウの外側(全画面)に描画できる透過オーバーレイ
インストール
Cargo.toml に以下を追加してください:
[]
= "0.3"
クイックスタート
use *;
API リファレンス
ウィンドウ
let mut window = default;
window.title;
window.size; // ウィンドウサイズ (ピクセル)
window.screen_size; // 仮想スクリーン解像度
window.resizable;
window.vsync;
window.decorations; // タイトルバー等の装飾
window.transparent; // ウィンドウ背景の透過 (DX12 DirectComposition)
window.init; // ウィンドウを開く
window.advance_frame // ウィンドウが閉じられると false を返す
window.delta_time // 前フレームからの秒数
window.elapsed_time // ウィンドウ作成からの秒数
window.set_position // ウィンドウ位置を設定
window.position
グラフィックス
// 画像の読み込み (WIC 経由: PNG / JPEG / BMP / TIFF / GIF / WebP 等)
let spr: u32 = load_graph;
let sheet: = load_div_graph;
free_all_graphs;
// スプライト描画
window.screen_draw_sprite;
window.screen_draw_sprite_ex;
// 図形描画
window.screen_draw_fill; // 全塗りつぶし
window.screen_draw_pixel; // ピクセル
window.screen_draw_line; // 線
window.screen_draw_rectangle; // 矩形 (true=塗りつぶし)
window.screen_draw_circle; // 円 (false=アウトライン)
window.screen_draw_triangle;
// ブレンドモード
window.screen_blend_set; // 加算
window.screen_blend_set; // 乗算
window.screen_blend_set; // 通常に戻す
// マスク
window.screen_mask_set; // スプライトをマスクとして設定
window.screen_mask_reset;
サブスクリーン
オフスクリーンのレンダーターゲットをスプライトとして利用できます。
let mut screen = window.create_screen;
screen.clear;
screen.draw_sprite;
screen.draw_rectangle;
window.screen_draw_sprite;
入力
// キーボード
window.is_pressed // 押している間 true
window.is_just_pressed // 押した瞬間だけ true
window.is_released // 離した瞬間だけ true
// マウス
window.mouse_position // (x, y) 仮想スクリーン座標
window.is_mouse_pressed // 押している間
window.is_mouse_just_pressed // 押した瞬間
window.is_mouse_released // 離した瞬間
// ゲームパッド (XInput)
window.is_pad_pressed // pad_id=0
window.is_pad_just_pressed
window.is_pad_released
window.pad_axis // -1.0 〜 1.0
window.is_pad_connected
window.pad_count
サウンド
XAudio2 による WAV 再生です。
let se = load_sound;
let bgm = load_sound;
play_sound; // 1 回再生
play_sound; // ループ再生
stop_sound;
set_volume; // 音量 0.0 〜 1.0
free_all_sounds;
対応フォーマット: WAV(PCM 8-bit / 16-bit)
テキスト
window.font_size; // サイズ 16 でシステムフォントを使用
window.font_file; // カスタムフォントファイルを指定
window.screen_draw_text;
// フォントハンドルを直接指定
let font = load_font;
window.screen_draw_text_ex;
let w = get_text_width;
オーバーレイウィンドウ
メインウィンドウの外側を含む全画面に透過描画できるオーバーレイです。OBS 等のウィンドウキャプチャと組み合わせて、ゲーム画面とデスクトップ上の演出を同時に実現できます。
// init() の前に有効化する
window.overlay_enable;
window.init;
// メインループ内
while window.advance_frame
screen_draw_* でメインウィンドウ外座標に描画すると自動的にオーバーレイへフォールバックします。
| メソッド | 説明 |
|---|---|
overlay_enable(bool) |
オーバーレイを有効化 (init() 前に呼ぶ) |
overlay_visible(bool) |
オーバーレイウィンドウの表示/非表示 |
overlay_clear() |
オーバーレイの描画キューをクリア |
overlay_draw_sprite(x, y, handle) |
スプライトをオーバーレイに描画 |
overlay_draw_sprite_ex(x, y, handle, params) |
拡張パラメータ付き描画 |
overlay_draw_text(x, y, text, color) |
テキストをオーバーレイに描画 |
overlay_blend_set(BlendMode) |
オーバーレイのブレンドモードを設定 |
内部実装
| 機能 | 実装 |
|---|---|
| グラフィックス | wgpu 27 (DX12) + DirectComposition |
| 画像読み込み | WIC (Windows Imaging Component) |
| サウンド | XAudio2 |
| キーボード / マウス | Win32 メッセージ (WM_KEYDOWN 等) |
| ゲームパッド | XInput |
| テキスト描画 | fontdue |
プラットフォーム対応
| OS | 対応状況 |
|---|---|
| Windows 10 / 11 | ✅ |
| macOS / Linux | ❌ (Win32 API を直接使用) |
ライセンス
MIT — LICENSE を参照