- ベストアンサー
等速度運動の反対
ゲームプログラムミングでキャラクターがジャンプすアルゴリズムを考えています。あの「スーパーマリオ」を思い浮かべてください。 飛び上がるのが減速で着地するのが加速となり、その中の加速の部分を「等加速運動」と呼ぶそうで式にすると 新しい速度 = 加速前の速度 + 一定の加速度 * 加速させた回数 このような形になりました。 では減速はこの反対をすればいいと思いいろいろ試していますがうまくいきません。ですので、等加速度運動の反対の式はどうであるか調べていますが、なかなか見つかりません。どなたか 減速の部分の式を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
加速度をマイナスの数値にすればいいはずですよ。
その他の回答 (2)
- cak24890
- ベストアンサー率28% (19/67)
質問に対する回答は、#1、#2さんの回答で全てと思いますが、ご質問者様は納得されていないご様子です。 ゲームであれ、それ以外であれ、コンピュータ上でリアル(に見える)動きを表現するには、現実の物理現象を表現する運動方程式を再現するのが一番と思います。 そういう意味では質問者様も理解されている通り、 V=V0+at ただし、a:加速度 t:刻み時間 の式をプログラム上で計算するだけだと思います。 aの値のちがいにより、マリオよりルイージの方が加速がいいけど止まりにくいとか、そういうキャラの特徴付けなどができるはずです。 どこがどううまくいかないのか、説明いただけると、ご質問者様の納得のいく回答が得られるのではないでしょうか。
お礼
おっしゃる通りです。 ここからはそれをどうのように実現するかという、 アルゴリズムの問題となってきます。 アルゴリズムさえうまく出来ていれば大丈夫です。 ご苦労かけてすみません。 どうもご協力ありがとうございます。
減速させる運動も「等加速度運動」と呼ぶはずですよ。#1の方が言われているように「マイナスの加速度」という考え方をするはずです。
お礼
おっしゃる通りです。 ここからはそれをどうのように実現するかという、 アルゴリズムの問題となってきます。 アルゴリズムさえうまく出来ていれば大丈夫です。 ご苦労かけてすみません。 どうもご協力ありがとうございます。
補足
等加速度運動と何回も口ずさんでいるうちに等速度運動になっちゃいました。失礼しました。(・・; #1さんのように理屈はそれでよいことは分かっているのですが、この等加速度運動のような現象をプログラミング言語で再現仕様となりますと簡単な式も内容によっては難しくなることもありえます。 本当は言語のカテゴリで聞くべきと思うかもしれませんが、原則的にはプログラミングより物理学になると思いここに質問しました。 単純だとは思うかも知れませんが、そこはどうか頭に入ておいてくさい。ご苦労かけてすみません。
お礼
おっしゃる通りです。 ここからはそれをどうのようにするかという、 アルゴリズムの問題となってきます。 アルゴリズムさえうまく出来ていれば大丈夫です。 ご苦労かけてすみません。 どうもご協力ありがとうございます。
補足
理屈としてはマイナスにすればよい事は分かっていますですのでいろいろ試してみました。 結構いろいろ試しましたが実現には及びませんでした。 この式など反対方向に等加速します 新しい速度 = 加速前の速度 - 一定の加速度 * 加速させた回数 減速の部分は 走っているキャラクターを止めるとき「車は急にはとまれない」といったアクションが再現でき非常に面白くなります。 このように、物理学を応用すると非常にバラエティ豊かなたのしいゲームになる事に気づきました。