- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:等加速度運動 の 反対 減速を再現するには?)
等加速度運動の反対はどう表現する?
このQ&Aのポイント
- 等加速度運動の反対を再現する方法を考えています。
- キャラクターのジャンプを再現するために、等加速度運動の概念を利用しました。
- しかし、逆方向に加速してしまう問題が発生しました。減速させる方法は何でしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
意図がよく読めないのですが、動いてる状態から徐々に止めたいんですよね。 初速入れましたか、0からだと、そりゃ速度マイナスになるの当然ですよ、0から減速なんだから。 ところで、気になったこと NewSpeedはポインタじゃなくて良いのかな、この関数はアウトプットがないよね。型がvoidだし、全てcall by valueで返しようがないし、大域変数も使ってない。 あと、NewSpeedが、+=なのもおかしいんじゃないかな。
その他の回答 (1)
- Trick--o--
- ベストアンサー率20% (413/2034)
回答No.2
初速を与えましょう。 「0から瞬時加速し」た時の速度を初期値にして、マイナスの加速度を加えればいいと思います。 速度が0になったら停止するようにするのを忘れずに。 初速が0なので逆方向に加速しているのです。
質問者
お礼
最初加速を加えその後徐々に還俗させることにより、 自然的な飛び上がりが表現できました。 今後ジャンプだけでなくシューティングなど様々なアクションに生かしたいです。 どうもありがとうございました。
お礼
>0からだと、そりゃ速度マイナスになるの当然ですよ、0から減速なんだから。 この言葉が大きなヒントとなりました。 減速するということは減速前は走っている事になりますよね。停止の状態で原則すると反対方向に行くのは当然のことです。 ヒントを元にもう一度見直して考えた結果自然的なジャンプシーンの表現に成功しました。 どうもありがとうございます。
補足
質問した後その瞬間書き忘れたことがあります。 意図としては 0から瞬時加速し徐々に減速する。 「スーパーマリオ」のマリオがジャンプするシーンを思い浮かべてください。 講師のライブラリを使用して実際のコード(関数など)はお見せできず、自分なりに急いで再現したので返って分かりにくくなってしまったようです。 「+=」は常に値が変化しているからだそうです。