【Fyrox】Rustのゲームライブラリを使ってみた【Part1 起動するまで】
前提
まだお試し段階なので、Rust
については省きます
インストールなどは調べてください
Froxy EngineはRG3Dから改名されたようで、動画とかRG3Dで検索するとちょっと出てきました
サイトのURL見ると同じなのは確実
シーンエディターらしい
2021年版に対応してるそうなので、アップデート
rustup default nightly && rustup update
環境
MacOS Big Sur 11.4
cargo 1.62.0-nightly
Fyrox
インストール
エディター付きということでかなりワクワクしながらインストールしています
sudo cargo install fyroxed
ちょっと時間かかるのでお茶でも飲んで待ちます
環境構築
プロジェクトを作りたい親フォルダで以下のコマンドを実行してフォルダを作成します
cargo new fyrox
newの後に書いた部分がフォルダ(プロジェクト)名になります
Cargo.toml
ファイルを編集
...
[dependencies]
fyrox = "^0.24"
エディター起動
ターミナルからエディターを起動
fyroxed
すごい重い
プロジェクトのフォルダを探すのが大変だけど一度選択するとまた選べるので大丈夫
シーンの作成
先ほど作ったプロジェクトの下にscenes
フォルダを作ったので、シーンを追加します File
ボタンからNew Scene
を選択してフォルダを選びます
箱が一つ置かれた状態に
ゲームの構築
公式に書かれている通りにsrc/main.rs
を編集
extern crate fyrox;
use fyrox::{
engine::Engine,
engine::framework::prelude::*,
};
struct Game { }
impl GameState for Game {
fn init(_engine: &mut Engine) -> Self where Self: Sized {
Self { }
}
}
fn main() {
Framework::<Game>::new()
.unwrap()
.title("Simple")
.run();
}
起動
デフォルトだとsudo
つけないとbuild
もrun
できなくて散々時間を費やした...
cargo run
Simple
ってタイトルの何も表示されないアプリが完成()
背景色をいじる
ControlFlow
とColor
とHsv
のライブラリをuse
して、背景色を時間で変更していくソース
公式のページに載ってるものに足りないソースも足した
extern crate fyrox;
use fyrox::{
engine::Engine,
engine::framework::prelude::*,
event_loop::ControlFlow,
core::{
color::Color,
color::Hsv,
}
};
struct Game {
hue: f32,
}
impl GameState for Game {
fn init(_engine: &mut Engine) -> Self where Self: Sized {
Self {
hue: 0.0
}
}
fn on_tick(&mut self, engine: &mut Engine, dt: f32, _: &mut ControlFlow) {
self.hue += 24.0 * dt;
engine
.renderer
.set_backbuffer_clear_color(Color::from(Hsv::new(self.hue % 360.0, 100.0, 100.0)))
}
}
fn main() {
Framework::<Game>::new()
.unwrap()
.title("Simple")
.run();
}
再度起動
cargo run
色が変わっていく...!()
まとめ
公式のソースは大体端折っているところがあるので、最初が難しいですがそれを抜ければ...!
起動までこんなにすんなりいけるライブラリは久しぶりです
Rustがしっかりしているからなのか、Fyroxのおかげなのか...!
参考
Hello, Cargo!
Fyrox Engine Getting Started
Fyroxゲームエンジンを起動する方法は? #272
Rust Dependencies
fyrox-book/fyrox-book.github.io
RPG Tutorial Part 1 - Character Controller