S.F. Page

Programming,Music,etc...

スカッシュゲームを作る(6) - パドルでボールをコントロールする

まずはパドルのx移動量(Δpx)をボールのx移動量(Δx)に反映してみることにする。 図にすると以下のとおりである。 image

ボールのx移動量(Δx)からパドルの直近のx移動量(Δpx)を引いたものを新しいボールの移動量(New Δx)とするのである。ボールのyの移動量(Δy)は単純に符号を反転させるだけで済ましている。 前回のバージョンは難易度を徐々に上げていくために移動量を少しずつ上げていったが、今回は処理を単純化するためにy方向のみにしている。

デモとコード

プレイ動画

こうするとボールの角度が変えられて面白いし、慌ててパドルを動かすと意図しないようなボールの動きをしたりするのでちょっと楽しい。でも欠点として難易度が徐々にあがっていかないし、うまくやればパドルを動かさずに無限にスコアを重ねることも可能である。

あと単純にマウスの移動量を足すだけだとx方向のボールのスピードが上がってしまう。つまりx方向のスピードだけはユーザーにゆだねる形になる。ボールのスピードを正確にコントロールするには、ベクトルの大きさを維持しつつ方向だけを変えるようにしないといけない。その計算はちょっとだけややこしい。

あとはあたり判定をもっときちんとしないといけないな。。