docs.rs failed to build rustraight-0.4.0
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_imageでスプライトシートを個別スプライトに分割 - 図形描画 — ピクセル・線・矩形・円・三角形(塗りつぶし・アウトライン)
- ブレンドモード — 通常 / 加算 / 乗算
- サブスクリーン — オフスクリーンレンダーターゲットをスプライトハンドルとして利用
- キーボード & マウス入力 — 押している / 押した瞬間 / 離した瞬間を全キー・ボタンで判定
- ゲームパッド入力 — ボタンとアナログスティック (DirectInput / XInput)
- サウンド — WAV(PCM 8/16-bit)・OGG Vorbis の読み込み・再生(XAudio2)
- テキスト描画 — システムフォントまたはカスタム TTF/OTF ファイルによる文字描画(テクスチャキャッシュ済み)
- デルタタイム & 経過時間 — フレームレート非依存の移動処理を標準サポート
- オーバーレイウィンドウ — メインウィンドウの外側(全画面)に描画できる透過オーバーレイ
- デバッグログ — デバッグビルド時のみコンソールに出力されるログマクロ
インストール
Cargo.toml に以下を追加してください:
[]
= "0.4"
クイックスタート
use *;
API リファレンス
初期化
init;
advance_frame // ウィンドウが閉じられると false を返す
delta_time // 前フレームからの秒数
elapsed_time // アプリ起動からの経過秒数
set_window_position
window_position
グラフィックス
target には 0(メインウィンドウ)またはサブスクリーンのハンドルを渡します。
// 画像の読み込み (WIC 経由: PNG / JPEG / BMP / TIFF / GIF / WebP 等)
let spr: u32 = load_image;
let sheet: = load_div_image;
free_all_images;
// スプライト描画
draw_image;
draw_image_ex;
// 図形描画
draw_fill; // 全塗りつぶし
draw_pixel; // ピクセル
draw_line; // 線
draw_rectangle; // 矩形 (true=塗りつぶし)
draw_circle; // 円 (false=アウトライン)
draw_triangle;
// 描画キューのクリア (画面をリセット)
clear;
// ブレンドモード(次の draw_* コマンドに適用)
set_blend; // 加算
set_blend; // 乗算
set_blend; // 通常に戻す
// マスク(次の draw_image / draw_image_ex に適用)
set_mask; // mask_handle のアルファ値を形状マスクとして使用
reset_mask;
サブスクリーン
オフスクリーンのレンダーターゲットをスプライトハンドルとして利用できます。
// サブスクリーンを作成(スプライトハンドルが返る)
let screen = create_screen;
// サブスクリーンに描画
clear;
draw_rectangle;
draw_image;
// メインウィンドウにサブスクリーンを貼る
draw_image;
入力
// キーボード
is_pressed // 押している間 true
is_just_pressed // 押した瞬間だけ true
is_released // 離した瞬間だけ true
// マウス
mouse_position // (x, y) 仮想スクリーン座標
is_mouse_pressed // 押している間
is_mouse_just_pressed // 押した瞬間
is_mouse_released // 離した瞬間
// ゲームパッド
is_pad_pressed // pad_id=0
is_pad_just_pressed
is_pad_released
pad_axis // -1.0 〜 1.0
is_pad_connected
pad_count
サウンド
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)、OGG Vorbis
テキスト
set_font_size; // デフォルトフォントサイズを変更
set_font_file; // カスタムフォントファイルを指定
draw_text;
// フォントハンドルを直接指定
let font = load_font;
draw_text_ex;
let w = get_text_width;
同一(文字列 + フォント + 色)の組み合わせは GPU テクスチャがキャッシュされます。240 フレーム未使用のエントリは自動削除されます。
オーバーレイウィンドウ
メインウィンドウの外側を含む全画面に透過描画できるオーバーレイです。
// WindowConfig で有効化する
init;
while advance_frame
draw_* でメインウィンドウ外座標に描画すると自動的にオーバーレイへフォールバックします。
| 関数 | 説明 |
|---|---|
overlay_visible(bool) |
オーバーレイウィンドウの表示/非表示 |
overlay_draw_image(x, y, handle) |
スプライトをオーバーレイに描画 |
overlay_draw_image_ex(x, y, handle, params) |
拡張パラメータ付き描画 |
overlay_draw_text(x, y, text, color) |
テキストをオーバーレイに描画 |
overlay_blend_set(BlendMode) |
オーバーレイのブレンドモードを設定 |
overlay_clear() |
オーバーレイの描画キューをクリア |
デバッグログ
デバッグビルド (cargo run / cargo build) のみ標準エラーに出力されるログマクロです。リリースビルド (cargo build --release) では出力コードが完全に除去されます。
log_info!; // [情報] スプライトをロードしました: 'player.png'
log_warn!; // [警告] フォントが見つかりません: 'font.ttf'
log_error!; // [エラー] 初期化に失敗しました: ...
内部実装
| 機能 | 実装 |
|---|---|
| グラフィックス | wgpu 27 (DX12) + DirectComposition |
| 画像読み込み | WIC (Windows Imaging Component) |
| サウンド | XAudio2 |
| キーボード / マウス | Win32 メッセージ (WM_KEYDOWN 等) |
| ゲームパッド | XInput |
| テキスト描画 | fontdue + テクスチャキャッシュ |
プラットフォーム対応
| OS | 対応状況 |
|---|---|
| Windows 10 / 11 | ✅ |
| macOS / Linux | ❌ (Win32 API を直接使用) |
ライセンス
MIT — LICENSE を参照