星田オステオパシー

Rustでトランキライザーガン その09 動物現る

 じゃあ今日もやってくか!動物を画面に表示しようってところからだな!
 でもその前に・・

 IFのところで式としても使用できますってのがあったので・・あ、そういう意味か。Matchのアームでの挙動でもそうだったな。なるほどなるほど(超今頃)

 Mainのループ内でAnimalsベクターに入ってる動物のActionがCapturedになって無い奴だけを表示する・・ってこういう感じのコードかな?添削どうぞ

 あ、Iterしないといけなかったw あと、ラムダ式に()を忘れてるのと、あっ&いらね〜って事。借用まだ分かってないなぁ・・

 後は表示に使用できる色でエラー発生。PurpleとかLightblueとか当然あると思ってたのに、こんだけしかないのか〜・・いや、十分だけど

 Specialは未実装なので適当に数値にしておいて・・


 Animalインスタンスを作る関数を作って・・・

 実際の初期値はこんな感じにして・・

 Animalの表示メソッドを書いて・・

 各種Enumに比較用の設定を追加して・・

 Mainのループ内にAnimal表示部分を書いて・・・
 この後、めちゃくちゃデバッグした・・して

 はい実行! 表示できた〜
 ・・・あの・・・アスキーアートのセンス皆無でした


 キャラを動かす処理はキャラごとに毎回、移動前に現在の表示を消して、その後に移動後に描画・・ってのをやってるんですけど、マップ全体を毎回描画するようにしたら移動後に表示するだけで済むんですよね・・一度試してみるか・・と、今まではスルーしていた道路も描画するようにしてみる

 うーん・・これは使い物にならぬ・・
 ん〜・・って事はだよ?もしかして、森部分もループの外で描画するようにした方が良いのでは?


 効率とかは度外視して、とにかく一度実験のためにループの外に出してみる

 結果、displayとしていた部分はPlayerしか描画しないので名前を変えました。そもそも全部一括でdisplayで表示しないなら、全部個別にするべきだったな・・

結果・・・

 うむ・・こっちで行くべきだな。Animalは森の座標に入ったら表示しないようにして、銃弾も森か枠外に行くときには(20,20)とかの座標に飛ばして不可視にするとしよう。
 あと、Put_chのクロージャだけど、Loop外に置いたらそれより下のスコープで全部有効なのか?有効なら最高だけど、駄目ならやっぱり関数化してコードを短縮しよう。

つづく


  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最近の「プログラミング」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事