前回で発砲の下ごしらえが終わったので、ザーッと「こうじゃないかな?」というコードを書いてコンパイル。エラーとバグに対処していく。
今回新たに覚えたのは自作メソッドの実行方法かな。「インスタンス名.メソッド名()」だったのか
後はキー入力によってBulletインスタンスのフィールドを変更するようにして・・
Bullet表示メソッドを書いて
Bulletが発射後に飛んでいくメソッドを書いて・・
なんと、バグ取りをしたらちゃんと銃弾が発射されて飛んでいった!
まあ、森も画面端も貫通してしまってるけど
森の判定をするために参照マップリストから座標を割り出す計算式を考えないと・・こういう時、1次元リストからの変換が面倒だなぁ・・
銃弾が進めるかどうかをチェックする述語を書く。移動先が木で無いか?と、画面から飛び出さないように・・というのを一気に処理。これはPlayerにもそのまま使えるな・・でもAnimalには使えないので名前を再考せねば
Mainループ内での処理。なるほど・・書いてみるとMainループで何をさせればゲームが進んでいくのかってイメージが明確になってきた。
ところでちょっとBulletの飛行速度が遅いので0.5秒にしようと思ったがエラー。Claude先生に書き方を教わる。整数になるようにちょっと変えるだけで良かったのか・・
ではいよいよ実行!
おお!ちゃんと狙ったとおりの動きになった〜!
いやまあ、弾丸の速度が一定しないのは気になりますけどね?
あと、表示が消えても見えずに進んでいるみたいだから何とかしないと。
Rustの良いところはコンパイル時のエラー表示ですね、やっぱり。めっちゃ詳細に示してくれるからなぁ・・
じゃ、いよいよ次はAnimalインスタンスを作って行くか!一応フィールドはこういう感じで考えてます。睡眠状態も含めて行動パターンをActionで持たせて、Specialは・・・
こういう感じでそれぞれ何かしらの特殊能力を持たせたいかな?ゴリラだけ特殊能力持ちってのは不公平なので。
ってところで今日は時間切れ。やっぱり副作用が目に見えると達成感が違いますなぁ!毎回何らかの表示が出来るるようになるところまでを区切りにしようかな?
あ、そう言えばあけましておめでとうございます。31日、ほぼすべての仕事が終わった21時にヘルパーさんの雑用を手伝ったところ右腰に嫌なぎっくり腰の予兆みたいなのを感じて冷や汗。そこから1日の夜まで、出来るだけ安静にして回復に努めてたのでコード書き初めが遅くなってしまった