ゲームライブラリ構築までの道 #5「ブロック崩し編」

Pocket
LINEで送る
GREE にシェア
LinkedIn にシェア

こんにちわ。
 

proxyって便利に使えると初めて知った、下駄です。
 

仕事で、とあるクローリングシステムを作っているんですが、
 

クローリング先のいくつかのサイトで、頻度高くアクセスすると、すぐにバンされてしまいます。
 

これを回避するためにproxyを使うんですが、使い捨てのように使えるproxyは本当に助かりますね。
 

でも、良い子はこれを真似しちゃダメですよ。
 

さて、本日のプログラミングは、ブロック崩し目前の壁打ちテニスの、ソースコード見直しを行い、
 

リファクタリングにトライしてみたいと思います。
 

ポイントは、コードの無駄を無くし、をスッキリさせる事と、若干の処理速度の向上を目指したいと思います。
 

あと、ボールとラケットとのコリジョン(当たり判定)に角に当たった時に、ボールの進行を左右反転する処理を入れてみます。
 

まとめのポイントは記載しますが、詳細が気になる人は、前回のソースコードと比較してみてください。

本日のIT謎掛け

「proxy」と、かけまして、
 

「ラジオリスナーの投稿」と、ときます。
 

そのココロは・・・
 

匿名性が高いでしょう。

ソースコード

 

not canvas

本日のまとめ

今回のリファクタリングポイントは、基本設定情報の__optionを、this.optionsに格納して、game-over時に、defaultに戻しやすくしています。
 

それに伴い、それぞれの関数での値受け渡しで、変数名を簡易にするようにしてみました。
 

ダイアログと、その文字表示も、もう少し汎用的な関数にしてみたので、コーディングの効率化になりましたね。
 

そして、ラケットとボールの衝突判定ですが、角判定というのを入れてみました。
 

角じゃない当たり判定は、そのままボールの角度を上下反転させるだけですが、
 

角の場合は、左右も反転させるようにしています。
 

ブロック崩しの狙いを定めるために必要な要素ですよね。
 

ちなみに、角判定は、ボールの中心座標からの半径距離を計算して、厳密にコリジョン判定を行っていますよ。
 

高校の時の数学を思い出しましたね。
 

全体のソースは、githubにpushしているので、そちらから取得してください。
 

https://github.com/yugeta/game_block
 

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です