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

物理のおおまかな話

転がるボール

 車がブレーキを踏むと止まるあの現象です。
物の表面と表面がこすれたときに生まれます。

摩擦にはおもに2種類あります。

  • 動摩擦 -- 動いているものに働く摩擦。
    • 転がり摩擦 -- タイヤ。
  • 静止摩擦 -- 止まっているものに働く摩擦。

とまあ、ありますが、動摩擦だけ押さえてればかなりそれっぽい動きをしてくれるので、 静止摩擦は気にしなくてもいいでしょう。
え、転がり摩擦ですか?これについては知識不足なんでそのうち調べたら書きます。たぶん 動摩擦とあんま変わんないと思います。小さくなるだけってだけで。たぶんですが…。

さて、どうでもいい前置きは終わりです。
んでは、毎度おなじみ超アバウトな動き方の法則解説です。

<法則>

  • 物同士がこすれると(ひきずって動かすなど)、動いている方向と反対方向に引っ張られるような感じになる現象です。
  • 摩擦の大きさは物どうしが触れている面積は関係ありません。
    • 接触面積が増える→物同士を押さえつける力が分散する。そんなイメージ。
  • 摩擦の大きさは、表面の材質と、接触している物どうしが押し付けあっている力の大きさに関係します。
    • 重いものだと地面に押し付ける力が大きいので摩擦が大きくなります。
    • 表面がつるつるしたものよりざらざらしているモノのほうが摩擦が大きかったりしますよね。
  • 地面に置いている物を引きずって移動させようとしたとき、物に横から力を加えている間は摩擦力が発生しますが、物を引っ張っていないなど力を加えていない間は摩擦力は発生していません。
    • 押すとか引っ張るとかしないかぎり摩擦抵抗は生まれないというわけです。

サンプル

hsp2.png
モジュール:filemp001.as

+  動摩擦サンプル



サンプルの解説

平方根モジュールはさくらさんとこのHSP Tipsを参考にさせていただきました。m(_ _)mども

物理演算

摩擦を表現した部分だけ抜き出しました。
水平な地面の上にある物体を想定して作っています。

	;地面との摩擦
	if py>=400 {
		if vx<0 : hvx =-1
		if vx>0 : hvx = 1
		if vx=0 : hvx = 0
		ax -= hvx*mu*ay
		if (vx<0)&(vx+ax>0) : ax = -vx
		if (vx>0)&(vx+ax<0) : ax = -vx
	}
  • if py>=400 ...のとこで地面に触れたときだけ、物体と地面との間に摩擦が生まれるようにしています。
  • hvxに進行方向の±を記録。
  • muは動摩擦係数。
  • 水平な地面上に限定するので地面に垂直な加速度はayを使用。

ということで式はこうなります。

	ax -= hvx*mu*ay

このあとさらに、マイナスしすぎて反対方向に移動してしまわないように摩擦抵抗に上限値を設定します。

	if (vx<0)&(vx+ax>0) : ax = -vx
	if (vx>0)&(vx+ax<0) : ax = -vx


めんどうな物理な部分

垂直抗力Nの物体に働く摩擦力は

F = μ * N

です。
垂直抗力Nと言うのは、地面から垂直方向に物体が受けている力。今回の場合重力意外に働く力がないので

N = m * g

になります。で、運動方程式がF=maだから…

F = μ * N
  = μ * m * g = m * a
    μ * g  = a

としてこのときの加速度が出ます。
この加速度は進行方向と反対方向に進むので、元の値から引いてやります。

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