コミュニティアイコン プチコン 非公式コミュニティ トピック

アバター
KNTK ◆.O1reuuyjCCS
2018/8/26 11:17
質問
ベクトル
ベクトルを使って自機狙い弾を作るにはどうすればいいのでしょうか。
atanより処理が速く済む、と ききました。
どう計算するかだけを教えてくださればいいです(理屈は自分で調べます)。

コメント

アバター
ろどに 2018/8/26 12:52 ◆vU1zN5Kpe4Y3
テストしてないので少し自信がないですが

(px, py):自機の位置
(sx, sy):弾の位置

dx = px - sx
dy = py - sy
d = sqr(dx * dx + dy * dy)

弾の速さが一定の場合:
v:弾の速さ
inc sx, dx / d * v
inc sy, dy / d * v
これが一番簡単かな?

弾に慣性をつけてみる:
a:弾の加速度の大きさ
(vx, vy):弾の速度
inc sx, vx
inc sy, vy
inc vx, dx / d * a
inc vy, dy / d * a
少しリアルっぽいです

ただしこの方法だと角度とかはわからないので
ミサイルみたいな追尾はATAN2を使わないと厳しいと思います、たぶん
アバター
ろどに 2018/8/26 13:43 ◆vU1zN5Kpe4Y3
あ、これ後者は惑星みたいに自機のまわりをくるくる回って実用性ないですね
プログラムを書き直して
k:減衰定数
dx = px - sx
dy = py - sy
d = sqr(dx * dx + dy * dy)
dx = dx / d
dy = dy / d

dot = vx * dx + vy * dy

inc sx, vx
inc sx, vy
inc vx, a * dx - k * (vx - dot * dx)
inc vy, a * dy - k * (vy - dot * dy)

こんな感じに速度に応じた減衰をかけてあげるとましになります
実用性があるかどうかは相変わらず微妙ですが…

ちなみにこの減衰計算にはベクトルの内積という考え方を使っています、少し複雑かも
アバター
KNTK 2018/8/26 17:15 ◆.O1reuuyjCCS
ありがとうございます!
試してみます!

コメントを書く

  • こちらは「プチコン3号」「プチコンBIG」など、プチコンシリーズに関する話題を扱ったコミュニティです
  • プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
  • こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
  • ユーザー登録なしで書き込みができます
  • 秘密の合い言葉は成りすましの防止 (トリップ機能)、書き込みの編集時の本人認証に使用します
  • 秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
  • 書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります

- WEB PATIO -