1人でゲームが作れるように修行します。2 (487レス)
上
下
前
次
1-
新
310
(3)
: 2011/09/12(月)22:39
ID:Im+6OdM9(1/2)
AA×
[240|
320
|
480
|
600
|
100%
|
JPG
|
べ
|
レス栞
|
レス消
]
310: [sage] 2011/09/12(月) 22:39:19.48 ID:Im+6OdM9 失礼ながら、無駄に複雑にしすぎてるような気がするね。 基本的にボールの状態変数は、(x,y,z)、(vx,vy,vz)だけあればいい。 それと便宜的に(接地 or浮いている)フラグをつけてもいい。 初期値はそれぞれ、ボールの初期位置、速度は0、フラグは'接地'状態。 ボールのループごとの処理はこんな感じ。 if(浮いている){ 垂直方向の重力加速度を速度に加算 速度を位置に加算 if(速度が下向きで垂直座標が地面より下){ 位置を地表に補正 垂直方向の速度に -0.9とか反発係数を配慮した値を掛ける 垂直速度が小さくなったら、'接地'状態とする } }else{ 水平方向の速度に0.99など転がり摩擦係数を意識した値を掛ける } 水平方向の速度を水平位置に加算 蹴った瞬間、(vx,vy,vz)に初速度を与え、'浮いている'状態にするだけ。 http://mevius.5ch.net/test/read.cgi/gamedev/1272901469/310
失礼ながら無駄に複雑にしすぎてるような気がするね 基本的にボールの状態変数はだけあればいい それと便宜的に接地 浮いているフラグをつけてもいい 初期値はそれぞれボールの初期位置速度は0フラグは接地状態 ボールのループごとの処理はこんな感じ 浮いている 垂直方向の重力加速度を速度に加算 速度を位置に加算 速度が下向きで垂直座標が地面より下 位置を地表に補正 垂直方向の速度に とか反発係数を配慮した値を掛ける 垂直速度が小さくなったら接地状態とする 水平方向の速度になど転がり摩擦係数を意識した値を掛ける 水平方向の速度を水平位置に加算 蹴った瞬間に初速度を与え浮いている状態にするだけ
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 177 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
ぬこの手
ぬこTOP
0.050s