「30日でできる!OS自作入門」をRustで。29日目

Posted on August 20, 2019 , Tags: OS自作入門, OS, Rust

「30日でできる!OS自作入門 」のC言語の部分をできるだけRustですすめてみる。今回は29日目の内容。

本ではファイルの圧縮を紹介しているが、独自アルゴリズムの圧縮形式のようで、圧縮自体も必須ではなさそうなので、今回はスキップする。
ここから最後までほぼアプリケーションを作る流れになりそうだ。

非矩形ウィンドウ

透明領域を作ることができるので、以下のようにすれば一部透明のウィンドウを起動できる。

実行結果

非矩形ウィンドウ

bball

線を使った幾何学模様を描く

このままだと描画されないところがあるので、console.rsのバグを直す。

常に値の小さいほうがrefreshの引数の先になるようにした。

実行結果

bball

インベーダーゲーム

最後に、インベーダーゲームを作る。
コードの詳細はあまり載せてもしょうがないと思うので、GitHub 参照ということで、ここには載せない。 一点、ウィンドウの端の処理がうまくいかず、こちらにあるように、ウィンドウの描画を上書きする処理を追加している。

実行結果

以下の通り、インベーダーゲームができるようになった。

インベーダーゲーム

最下端までインベーダーがきてしまうとGAME OVERになるが、Enterで最初から再開できる

インベーダーゲーム再開

29日目は以上となる。ここまでの内容のコードはyoshitsugu/hariboteos_in_rustのday29としてタグを打ってある。