[過去ログ]
Windowsゲームプログラミング 質問スレ (973レス)
Windowsゲームプログラミング 質問スレ http://mevius.5ch.net/test/read.cgi/gamedev/1225974525/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
353: 名前は開発中のものです。 [sage] 2009/08/19(水) 02:30:02 ID:y+Txo86j 放物線を描こうとしてるんだが、斜め上にうまく打ち出せない。詳しい人がいたら教えてほしい。 public struct NextpointParam { public double vx, vy, x, y, dx, dy, sx, sy,e, m; } const double g = 9.8,rotSpeed = 3; double dt; //ループ前に実行する public NextpointParam calcArrivalTime(NextpointParam cmd, int rot) { dt = cmd.vx / 120.0; double rad = rot * Math.PI / 180; double subx = Math.Abs(cmd.dx - cmd.sx),suby = Math.Abs(cmd.dy - cmd.sy); if (cmd.dx != cmd.sx) { double t = -(2 * subx * Math.Sin(rad)) / (Math.Cos(rad) * g * dt) + (2 * suby / (g * dt)); t = Math.Sqrt(Math.Abs(t)); cmd.vx = subx / t; cmd.vy = cmd.vx / Math.Cos(rad) * Math.Sin(rad); } return cmd; } //ループごとに実行する public NextpointParam calcElliptical(NextpointParam cmd) { double vx = cmd.dx - cmd.sx > 0 ? cmd.vx : -cmd.vx; cmd.vy += g * dt; cmd.x += vx; cmd.y += cmd.vy; return cmd; } http://mevius.5ch.net/test/read.cgi/gamedev/1225974525/353
354: 353 [sage] 2009/08/19(水) 02:31:20 ID:y+Txo86j 実行環境:C#3.0 http://mevius.5ch.net/test/read.cgi/gamedev/1225974525/354
355: 名前は開発中のものです。 [sage] 2009/08/19(水) 10:25:19 ID:zkIhyE9m >>353 vx,vyは速度だと思うが、dt = cmd.vx / 120.0;ってのは何? 120ってどこから出てきた数字? sx,syからdx,dyに向かって放物線を描く弾をrotの角度で撃ちたいってことでいいんだよね? それって解無しの場合があるが、その処理が全く入ってないんじゃないか? sx,syから見てdx,dyがa度の位置にある場合、発射角がa度以下では絶対に届かない。 発射角がちょうどa度だと初速は∞になる。 初期条件の与え方に問題があるかと。 着弾点を指定したいなら、普通は角度は初期条件で与えない。 http://mevius.5ch.net/test/read.cgi/gamedev/1225974525/355
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.027s