悲しいねぇ

あー
もー
プログラムがー



・・・なんでこんなに衰えてるんだろorz
そりゃ、やらなきゃ衰えるのは当たり前なんだけどさ。
等速直線運動さえ忘れてるとはねぇ・・・orz
ということで、今日は珍しくプログラムのお話。
等速直線運動とか等加速度直線運動とか投げ上げ運動とか高校の物理の時間にやったと思いますけど(文系は違うのかな?)それをプログラムで組んじゃいましょうっていうなんか面白くなさそうな話。
・・・いや、組んでみると結構面白いのよ?
これが出来るならこれやってあれやってって期待爆発で。うん。
スーパー○リオとかロック○ンとかも割とこれの組み合わせで出来てます。
音とか画像とか入力装置とか諸々入ってくると運動方程式だけじゃ出来ませんけどね。
小難しい質問されても返答しないのでそのつもりで(⌒ω⌒

等速直線運動
位置=現在の位置+速度
つまり、
X=X+V;
を移動して欲しい時に書けばいいです。十字キーの右を押している間とか。

等加速度直線運動
速度=現在の速度+加速度
位置=現在の位置+速度
つまるところ、
V=V+A;
X=X+V;
を書けばいいです。これは常時動いてないと変ですよ。
って言うか、ゲームにするなら摩擦抵抗とか考えて書かないとあれれ?って感じになると思う。
スペースを押した時だけV=V+Aを処理して後は常時X=X+Vで動かしてやれば多分気持ちいいです。
その後ろにV=V−B(0<B<V)いれてやれば多少は摩擦っぽく見えるかも。
つか、私はそうしてる。
Vの値がマイナスにならないように気をつけて。

投げ上げ運動
速度=速度−重力
位置=現在の位置+速度
今回は高さ関係なのでXではなくYを弄くります。
あと、重力は9.8とか習ったと思うんですけどプログラムでそんなに厳密にやる事はありません。10でも0.1でもいいです。
更に、最初に一度だけ「初速」を与えてあげてください。
初速を与えない場合、単に落下運動になったと思います。
というわけで、
V=V−0.1;
Y=Y+V;
十字キーの上を押した瞬間にV=初速度を入れるプログラムを組めばたぶん幸せに。

と、こんな感じでどうでしょう。つか、このくらいの説明+画像を動かす処理の説明を加えて、大学のほうで生徒さんを相手に授業を3時間ほど受け持った事もあります。
だから、何とか成ると思う。うん。授業も成立しましたし。
私は今ゲームを作りたいと思ってる人を応援しています。
がんばって、がんばろー。