hinekure.net が http://hspdev-wiki.net/ から自動クローリングした結果を表示しています。画像やリソースなどのリンクが切れています。予めご了承ください。
物理のおおまかな話/飛ぶボールその1 - HSP開発wiki
トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS

物理のおおまかな話

飛ぶボールその1

ボールは空中に置くと地面に落ちる。なぜか?地球に引力があるから。
ってそりゃ知ってる話でしょうが…で、結局引力ってどんな感じのもんなん?というのが問題。
<法則>

  • ボールの移動速度は、ボールに何らかの力が働かない限り変化しない。
  • 地球はボールをある一定の力で引っ張っている。
    • 「一定の力」は地球上の人が普段生活する範囲ではどこに行ってもほとんど変わりません。今回は深海や成層圏とかまで行かないで下さい。(^ ^;
    • 力の大きさはボールの質量に関係してくる。質量が大きいほど強く引っ張られる。
  • ボールに「常に一定の力」が加わると、ボールの移動速度は常に一定の法則で変化する。
    • 一定の力は引力に限定するものじゃないけど…いまは引力と考えていいや。
  • この法則とゆーのは、一定時間ごとに一定の大きさだけ速度が増える、というもの。
    • ボールは地面にはぶつからないし、手でも触らないものとしておく。おさっしのとおり時間とともにどんどん早くなっていきます。
  • この法則による速度変化は、ボールが重くても軽くても大きくても小さくても平べったくてもまん丸でも、一切関係ありません。
    • 「実際は違うじゃん!」といわれそうですが、その辺は後で説明します。今回とは別の法則で力が加わっていますので。今回は空気がないから、とだけ。

んーと、まー、いーいう感じです。 気楽にサンプルいってみましょう。

サンプル

+  重力サンプル


サンプルの解説

今回新たに増えた変数は次の変数。

ax :x方向加速度
ay :y方向加速度



操作方法。

  • スペースキーを押すと、物体に下から上に向かう方向の速度を加えます。
    ジャンプやボールを上になげるイメージです。
  • キーボードの←→キーで横移動が出来ます。 x方向の速度に値を加えているだけなので前回の復習といったような動きをします。

物理演算

今回の肝心の部分はこんだけです。
一番最後の行では物体が画面から消えてしまわないように、地面を作っています。

	;	物理計算
	vx = vx + ax	;速度の変化
	vy = vy + ay
	px = px + vx	;座標
	py = py + vy
	if py>400 : vy = 0 : py = 400	;地面の代わり

というわけで、座標のところはもういいですね。
今回のポイントは速度の変化です。axは1コマ当たりの速度変化の量で、単位は

ax [ドット/(コマ×コマ)]

と考えてください。
前回と同様に×1コマが省略されています。実際はこんな感じです。

vx = vx + ( ax * 1 )

(ax × 1コマ)の計算で増加する速度(ドット/1コマ)になります。
このようにして時間(コマ)とともに速度 vx,vyは変化していきます。(ちなみに、この axは一般に「加速度」と呼ばれています。)

一般的な速度を求める式はこんな感じです。

(現在の速度)=(1コマ当たりの速度変化量)×(経過した時間・コマ数) + (移動前の速度)

(経過した時間・コマ数)は経過時間のことです。普通1コマなので1と考えれば計算が楽ですね。

  • さて、重力と速度の関係が分かったでしょうか?
    地球の引力、というか一定の力で引っ張り続けている物体の移動なのですが…まあ通常ゲームでは引力で使うことが多いでしょう。

ふろく

HSPでの記述について

px = px + vx

px += vx

と記述することが出来ます。

ニュートンのあれ

ここからは物理習ったぞというひとだけ読んでください。
質量m、重力加速度gの場所に置いてあるボールにかかる力Fは

F = m * g

です。
力と質量と加速度の関係…運動方程式は、

F = m * a

なので、

F = m * a = m * g
    a  = g

となります。質量の大小にかかわらず、加速度は同じになります。
このように今回は水も空気もないので鳥の羽でも金の延べ棒でも同じ加速度で落下し、同じ高さから落とせば同じ速度で落下します。

添付ファイル:
fileb002.as
335件 [詳細]
トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS
Last-modified: 2007-04-08 (日) 02:48:29 (2436d)