星田オステオパシー

Rustでトランキライザーガン その18 Animalの速度変更

 ゴリラの破獄関連をやろうと思ったんだけど、その前に気になってるAnimalごとの移動スピードの変更をやってみたいと思い立った



 以前、インスタンスごとに弾丸ヒット時のエフェクトで時限動作の機能をもたせられると判明したので、多分、こんな風にフィールドを持たせてInstant::now()を設定すれば行けるのでは?と。
 SpeedはDurationの値をそのまま入れるので速いほど数値が小さくなるわけだな


 そこでBulletのeffectを参考に書いてみたのが上のコードで、Claude先生に添削してもらったのが下。

 なんか色々と間違ってるらしい。
 なるほd・・僕の中ではAnimalインスタンスの中にNowとLast_timeの数値を入れておいて、Nowはそのたびに更新しLast_timeと比較して・・と思ってただけど、言われてみれば単純に今現在の時刻を取得して、最後に更新されたLast_timeと比較してSpeedを超えていればGoって事で良いよね、たしかに!なるほど〜・・1つの時限機能につきフィールドは1つで良く思ってたよりも簡単に処理できるようなので、これならアニメ処理とかも気楽に実装できるなと。Crosstermやりますなぁ


 で、結果こういう感じで。Snakeは実験用に特に速く(200ミリ秒)したので分かりやすくなってますね。

 では次回こそはゴリラの破獄関連をやっていこうかと

つづく


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

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

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