プロが教える店舗&オフィスのセキュリティ対策術

ゲームプログラムミングでキャラクターがジャンプすアルゴリズムを考えています。あの「スーパーマリオ」を思い浮かべてください。

飛び上がるのが減速で着地するのが加速となり、その中の加速の部分を「等加速運動」と呼ぶそうで式にすると

新しい速度 = 加速前の速度 + 一定の加速度 * 加速させた回数

このような形になりました。
では減速はこの反対をすればいいと思いいろいろ試していますがうまくいきません。ですので、等加速度運動の反対の式はどうであるか調べていますが、なかなか見つかりません。どなたか 減速の部分の式を教えてください。

A 回答 (3件)

 加速度をマイナスの数値にすればいいはずですよ。

この回答への補足

理屈としてはマイナスにすればよい事は分かっていますですのでいろいろ試してみました。
結構いろいろ試しましたが実現には及びませんでした。
この式など反対方向に等加速します

新しい速度 = 加速前の速度 - 一定の加速度 * 加速させた回数

減速の部分は 走っているキャラクターを止めるとき「車は急にはとまれない」といったアクションが再現でき非常に面白くなります。
このように、物理学を応用すると非常にバラエティ豊かなたのしいゲームになる事に気づきました。

補足日時:2006/02/23 00:39
    • good
    • 0
この回答へのお礼

おっしゃる通りです。
ここからはそれをどうのようにするかという、
アルゴリズムの問題となってきます。
アルゴリズムさえうまく出来ていれば大丈夫です。
ご苦労かけてすみません。
どうもご協力ありがとうございます。

お礼日時:2006/02/23 12:02

質問に対する回答は、#1、#2さんの回答で全てと思いますが、ご質問者様は納得されていないご様子です。


ゲームであれ、それ以外であれ、コンピュータ上でリアル(に見える)動きを表現するには、現実の物理現象を表現する運動方程式を再現するのが一番と思います。
そういう意味では質問者様も理解されている通り、
V=V0+at ただし、a:加速度 t:刻み時間
の式をプログラム上で計算するだけだと思います。
aの値のちがいにより、マリオよりルイージの方が加速がいいけど止まりにくいとか、そういうキャラの特徴付けなどができるはずです。

どこがどううまくいかないのか、説明いただけると、ご質問者様の納得のいく回答が得られるのではないでしょうか。
    • good
    • 0
この回答へのお礼

おっしゃる通りです。
ここからはそれをどうのように実現するかという、
アルゴリズムの問題となってきます。
アルゴリズムさえうまく出来ていれば大丈夫です。
ご苦労かけてすみません。
どうもご協力ありがとうございます。

お礼日時:2006/02/23 12:03

減速させる運動も「等加速度運動」と呼ぶはずですよ。

#1の方が言われているように「マイナスの加速度」という考え方をするはずです。

この回答への補足

等加速度運動と何回も口ずさんでいるうちに等速度運動になっちゃいました。失礼しました。(・・;

#1さんのように理屈はそれでよいことは分かっているのですが、この等加速度運動のような現象をプログラミング言語で再現仕様となりますと簡単な式も内容によっては難しくなることもありえます。

本当は言語のカテゴリで聞くべきと思うかもしれませんが、原則的にはプログラミングより物理学になると思いここに質問しました。

単純だとは思うかも知れませんが、そこはどうか頭に入ておいてくさい。ご苦労かけてすみません。

補足日時:2006/02/23 00:49
    • good
    • 0
この回答へのお礼

おっしゃる通りです。
ここからはそれをどうのように実現するかという、
アルゴリズムの問題となってきます。
アルゴリズムさえうまく出来ていれば大丈夫です。
ご苦労かけてすみません。
どうもご協力ありがとうございます。

お礼日時:2006/02/23 12:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!