13/04/07 00:02:24.64 475c5HvW
>落下位置は時間の二乗に比例するのは分かる?
比例しねえよ。
アホか。
92:名前は開発中のものです。
13/04/07 00:45:46.82 D+q7gFUe
えっ
93:名前は開発中のものです。
13/04/07 03:34:43.12 2SdTxfZy
質問者が小学生か中学生かもしれんだろ
94:81
13/04/07 07:00:02.03 CtpA13/I
いちおう理系プログラマ経験ありの無職ひきこもりなんですがね
助言ありがとうございました。
現状
X軸上の目標にほぼ当たるように調整しました。
しかし、高さが変わるとさっぱり。
たぶん、方向×パワーでの調整をしないとだめなんでしょう。
ゲームツールとしては実用になりそうなんで十分です。
・・・ t の計算前に調整したのは失敗かな。
95:名前は開発中のものです。
13/04/07 07:01:31.52 CtpA13/I
rot = 45 // 仰角 左下原点
xn, yn // 砲台、目標の画面座標
dx, dy // 砲台の向きとパワー 左下原点 ←これが砲弾の初期ベクトルと一致すると思ったのがそもそもの間違いでした。
引数(rot, x0, y0, x1, y1, var dx, var dy)
// 初期値
g = 400
dt = 0.05 // 画面座標を g * dt するとほぼ砲台ベクトルになる
PI = 3.14159
// 計算
rot = (-1) * signum(x1 - x0) * (90 - rot) - 90
rad = rot * PI / 180 // 角度からラジアンに変換
subx = x1 - x0 // x方向のターゲットとの距離
suby = y1 - y0 // y方向のターゲットとの距離
suby = (-1) * suby // 座標変換
// 画面座標を砲台比率に調整
subx2 = 80 + subx * 1.3 - sqrt(subx * subx * 0.4) // x軸上でほぼ当たる
suby = suby * (subx2 / subx)
subx = subx2
// 到着時間(フレーム数)を求める (サンプルのまま)
t = (-1) * (2 * subx * sin(rad)) / (cos(rad) * g * dt) + (2 * suby / (g * dt))
t = sqrt(abs(t))
dx = subx / t // x方向の移動量を求める
dy = dx / cos(rad) * sin(rad) // y方向の移動量を求める
96:名前は開発中のものです。
13/04/07 10:14:55.06 vg5SabRs
>>95
画面座標を砲台比率に調整、ってのが何をやりたいのかさっぱりわからん。
>>81のサンプルじゃないよね。
こっちで一からエクセルで計算式作ったら、
ターゲットがy<xの座標である限り、確実にヒットしたぞ?
>>91
x=(-1/2)gt^2 は「xはtの二乗に比例する」って表現するんだ。
こんな下らん事で興奮してると禿げるぞw