ROBボーデン:こんにちは。 私はロブだ。 このゲームを実装する方法を疑問に思って? さて、抜け出すのを聞かせて スタッフソリューション。 だから、ダウンinitに初の頭をしましょう 我々はあなたに言った機能 最初に実装されています。 最初の1私たちは見てみましょう それを初期化パドルです。 すべての権利、私たちが望むことを覚えておいてください 正確に中央に配置されるパドル x軸。 だから我々は把握する必要があります どこにそれが行く必要があります。 その - ボードの幅が与えられた また、トップを定義したハッシュです - 私たちは、パドルの幅を減算する必要があり そして、2で割ることにより、 パドルの中心にあり 基板の中央。 x座標が参照することを忘れないでください パドルの左上隅、 そしてこれは正確にどこで 我々はそれになりたい。 y座標は重要ではありません 我々は置くことができますので、できるだけ多く それ私たちが望むところ。 だから我々は、我々はセット、パドルをインスタンス化する 、我々はTrueに塗りつぶし色ブラックを設定 そのためには、四角形の中にいっぱいだし、我々 その後、ウィンドウと戻りに追加 パドル。 そして、それは初期化のためにそれだ パドル。 それは同じようなものになるだろう INITスコアボード用。 だから我々は、ラベルを初期化しようとしている、 我々はに色を設定しようとしている ライトグレー - あなたはどのようなあなたを選ぶことができます たい - 私たちは、フォントを設定しようとしている SANは、48のセリフ - また、あなたが好きな選択でした - 我々は、ウィンドウに追加します。 今すぐバックアップするには、この送信は実際にはありません 必要に応じて、それは場合にだけ何か 他には、ラベルに重なるように発生します。 その後、我々は衝突を検出使用した場合、 衝突がお互いを検出し検出 それは、ラベルを検出する前の事。 しかし、それは実際に影響してはならない このプログラムでは、私たち。 最後に、この更新スコアボードを持っている 私たちが書いた機能。 それでは、その見てみましょう。 さて、ここでは、だものを見る 何とほぼ同じ 我々はlabel.cで見た。 だから我々は、ラベルを持っている - 12文字の文字バッファ、 いずれかを処理するのに必要なだけである 負または正の整数、。 その後、我々はコピーすることはsprintfを使用 そのバッファに指しています。 だから、Sこれが表す文字列が含まれています ポイントの数。 最後に、ラベルを設定 その文字列へ。 そして、我々は、ラベルを中央にする必要があります 場合に、我々は9から10まで行ってきた ポイントと我々はそれをシフトしてきました。 だから我々は、xとy座標を計算する ラベルのどれでしょう 幅と高さを取得 ウィンドウの。 が、我々はまた、単に使用することができます 定数の幅と高さのハッシュ トップを定義しました。 また、幅と高さを取得する ラベルと格差の 2によるセンターへの。 そして、我々は実際に設定した場所を使用 その場所にそれを置く。 だから、INITスコアボードのためにそれだ。 [OK]をクリックします。 だから、INITボールは非常に似ているために起こっている だけでなく、パドルに初期化するために。 我々はnewgovalを使用していることがわかり 新しいボールをインスタンス化するためである。 そしてここでは、2回の半径を使用している ボールの幅、および2として 倍の半径 ボールの高さ。 今、またnewgovalため、xと 我々は起こっているを渡していることをy座標 の左上を参照する 実際にはボール、 ボール自体の外。 だから、正確にボールを取得するために、 ボードの中央には、渡す必要があります 幅は、センターに2で割ったもの、及び 次にpush半径を差し引く へのボールの実際の中心 基板の中央。 そして、我々はまったく同じことを行う y軸は、用いた以外は 代わりに、幅、高さ。 だから、中央にボールを置く。 そして、これは設定され、ボールをインスタンス化 黒にカラーボールを記入し、 そして最後に追加 ウィンドウとそれを返す。 そして、それは初期化のためにそれだ ボール。 だから今のは、initを見てみましょう もう少しでレンガ 複雑な、しかし、それはかなりです INITパドルに似ています。 さて、最初に把握する必要があります 各レンガの幅。 我々は定数と呼ばれていることを忘れないでください 指定通話 レンガの列数 我々は持っている。 そこで、幅を決定するつもりだ 幅を取ることによって、単一の煉瓦の ボード全体の減算 私たちのギャップの大きさ外 - ハッシュは、トップを定義し、参照されている 画素数への 各煉瓦の間であるべきである - そして私たちは、合計を持っているつもりだ 隙間時間は、内空白画素を呼び出し 単一の行。 そして、それはまた、いくつかの空白を参照します の左右の画素 列と右の列レンガを残しました。 だから、それらの空白画素を差し引く そのピクセル数を私たちに残します レンガは、実際に使用しています。 そして、我々は、取得するための呼び出しで除算 レンガあたりのピクセル数。 そこでここでは、単に配列を定義 我々はそれぞれに欲しい色を指定します。 レンガの列。 我々はレンガの多くの行よりもを持っていた場合 我々は指定された色は、我々が表示されます その我々だけでループバックの周りやよ 再び赤を使用し、オレンジと というように、黄色と。 だから、P-セットスペックヒントとして、我々は すべての行をループに行くと レンガの列。 しかし、列の上をループの前に、我々 我々は指定していることがわかり 各レンガのy位置 その特定の行にある。 また、第二に、これを動かすことができる forループが、その後我々だけであることと思います 何度も計算を行う 再び我々はする必要がない場合。 だから、レンガのy位置が起こっている ハッシュで余裕であると トップまで定義されているだけを指し ボードの上部との間のスペース レンガの全ての始まり。 そして、我々はそれに行を追加するつもりだ 私たちは、時間に高さだということ 個々のレンガプラスのギャップ すなわち、各ブリックの間である。 これは、垂直である 各レンガの間のギャップ。 だから私たちにy座標を与えます レンガの。 そこでここでは、計算しようとしている レンガのx座標。 今、我々は、以降2で割ったギャップを有する、 前覚えて、私が言ったことで、 ボードの左側、我々は行っている 小さなスペースを残す。 だから、2で割ったギャップはそのスペースです。 そして、我々はそれに列を追加している 私たちは、時代の幅プラスにしていることを 幅はスペースの量ですギャップ、 シングルレンガ占めていることと、 その後、ギャップが空間である 各れんが間。 だから、x座標計算 レンガの。 今、私たちは単にインスタンス化する必要があります xとy座標が指定されていれんが 我々は、各々について計算された幅を用いて あるレンガ、ブレークの高さ まで定義されている一番上のハッシュ。 私たちは、レンガの色を設定する。 私たちは私たちのカラー配列を使用している気づき、 私たちはいた行に渡している 確認しようとしているMODのNum色に 我たら私達は赤に周りのバックラップ 色よりも多くの行を持っている。 最後に、我々はレンガを埋めるよ 色やウィンドウに追加します。 そして、それはこれだけです。 だから、それは私たちのすべてのためにそれだ 初期化メソッド。 今、私たちはその中に見てする必要があり あなたが記入しなければならなかったループ そこでここでは、これが私たちの中にあることがわかり まで継続する予定ですループ ゲームが終了する、そのどちらかの手段 私たちは命を使い果たすか 我々はレンガを使い果たし。 我々は持っているので、まず最初に クリックして待ちです。 だからゲームは、私たちが実際にするのを待ち ボールが移動を開始する前にクリックします。 そして、我々は行っている 命をデクリメントする。 我々は今、3つの命を持っていたのであれば、我々はしている 2生活まで、我々は我々が使用している 第三の人生。 我々はボールを中央にするつもりだ。 だから今、これは本当に助けに行くされていません 我々は再生する非常に最初の生命に関する問い合わせ ボールはすでにしようとしているので、 ときに我々から中心にされています それをインスタンス化。 我々は失ってしまうときが、我々は参照してください。 生活や背中の周りのループが、その後、我々はしている ボールを更新したり、したいとして バックボードの下部 センター。 だから、今ここでは、生成する必要があります ボールのx速度。 そして、仕様により、我々は、D·ランドを使用している 48いくつかの乱数を生成する 速度を指定します。 私たちは以来、それに1を追加しているだけ 1の範囲で速度が欲しい 2ではなく1にゼロに。 最後に、我々は、再びDのランド48を使用している ボールかどうかを決定するため 左に移動しようとしている または開始する権利。 だからDランド48は、乱数を返す 0と1の間、などを尋ねることによって それが0.5未満の場合、我々は、50 50を有する の速度を切り替える機会 陰性とボール。 最後に、我々は垂直速度を設定する シュートはわずかにいくつかの一定になるように。 我々は3を選択します。 そして今、我々は別のループを持っています。 したがって、この内側のループです 続けるつもり。 レンガながら、ここに注目してください ゼロより大きけれ - 我々はレンガを使い果たすのであれば、我々はしました ゲームに勝ったし、我々はできる このループから抜け出す - そして、すべての高さよりもYボール少ないの取得 マイナス2倍の半径。 それでは、これが認識していることであるかの ボールに、パドルを過ぎて行くことを起こる その場合、あなたは命を失ってしまった。 我々が持っているforループこの内を調べ マウスイベントをチェック。 そこで、マウス·イベントがある場合、その 我々がチェックすることを意味します マウスが移動したかどうか、もし マウスが移動した、我々は持っていたい パドルマウスに追いつく。 だから、そのためには、我々は新しいを計算 起こっているパドルの位置 マウスの位置をつかむために - これを用いて位置をつかむ 私たちが渡されたイベント - そして、我々は出減算するつもりだ パドル幅は2で割ったので、 マウスを中心としたパドルの滞在 代わりにパドルの左側の 中心の滞在。 だから今我々はまた、ことを確認したい、私たち 左側または右側の上行っていない ボードの側面。 ので、ここで我々はちょうどチェックしている場合 パドルの左側からだろう ボードは、ちょうどスティック 左側にそれ。 そしてここで我々はチェックしている場合は、パドル の右側の上になります ボード、それを貼り付け 右側に。 そして最後に、我々は、実際に設定さ パドルの場所。 今、マウスの動きがなかった場合には、 それは我々がしようとしていることを意味 ボールを移動したい。 だから我々はすでに、Xを持っている ボールのy速度 そして私たちは、それを移動します。 しかし、今、我々は検出したい カップルのこと。 我々はどちらかヒットした場合そこでここでは、検出している の左側または右側 ボードは、我々はボールをバウンスしたいと思います。 そこで、その場合、我々は、x速度を設定する 負のx速度へ。 ボールがボードの上部にヒットした場合、 その後、我々はまた、ボールのバウンスをしたい。 しかし、今、我々は、変更したい Y速度。 我々は条件を持っていないに注意してください ボールの下を打つ それ以来、このボードは、すでに捕獲された ここで、このwhileループで最大。 最後に、我々はいくつかを検出する ボールがヒットした場合の衝突 パドルやレンガのどちらか、我々は欲しい いくつかの特殊なケースのことを行う。 衝突があったが、そうであればここで ケースオブジェクトは、その後、nullにすることはできません オブジェクトは、パドルをヒットした場合、我々はだろう ただボールをバウンスしたいと思います。 そしてここで、また、我々は場所を設定 ただパドル上にボール。 我々はのx位置を取っているに注意してください ボールとちょうどそれを再利用する。 が、ここではy位置を取得している パドルとボールを移動させる パドル上。 これは特殊なケースであるようにボール パドルをヒットしてから、しない それはパドルから移動することが可能になる前に、 別のループが一周したら それはパネル上にまだあると思っている そのY速度をバックに設定されます ネガティブ、その後シュートはわずかに優しい スティックのパドルにバウンス。 だから、私たちはパドルにならない場合、 その後、我々はまた、チェックしたい 我々はレンガをヒットした場合。 だからこれは我々がチェックする方法です。 我々はレンガを打つかどうかを確認します。 我々は可能性があるため、我々はこれをチェックする必要があります 実際にラベルと我々を直撃している ラベルを削除する必要はありません。 我々はレンガを打つのであれば、我々はそれを削除することができます 窓からレンガ、デクリメント レンガの我々の数は、当社をインクリメント ポイントの数、そして今、我々はする必要が 正確にスコアボードを更新 我々が見たときに我々は前に見たのと同じ INITスコアボード。 しかし、今我々だけで更新している 我々は変更しましたので、スコアボード ポイントの数。 そしてそれは今表示するように 私たちはもう一つの休憩を打つ。 そして最後に、我々はレンガをヒットした場合 我々はまた、バウンスしたいと思います。 最後に、我々はちょうどそのように一時停止 ボールは超高速、我々動いていない 実際に私たちのパドルでそれを打つことができます。 そして、それはかなりそれだ。 それで今、私たちは、背中の上部にループだろう このwhileループとなるまで継続する 私たちは、命を失うかのどちらか 我々はレンガを使い果たし。 我々は命を失うとどうなりますか? その後、我々はこのしばらくを終了しようとしている ループ、とさせて頂きますループがバックアップわかります 外側のwhileループの先頭に。 その場合、我々はするつもりだ これは再設定を実行します。 そして、これは私たちが待っているつもりされているセットアップ クリックに対して、私たちの数をデクリメント 生活の、再計算し、ボールを更新したり、 xとyの速度、および その後、ゲームを再開。 だから、それはどちらかになるまで続けます レンガは、より小さくされて終了 またはゼロに等しい - その場合、我々は試合に勝った - または生活は、ゼロ未満である 場合、我々は試合に負けていた。 そうだとしたら、そう、私たちは抜け出す そのwhileループの、そして我々はここに到達 我々は、クリックを待つつもりだ場所 ように、ゲームを終了する前に ゲームだけで、すぐにしません 私たちに閉じます。 そして最後に、我々は閉じます ウィンドウとそれはあります。 私の名前はロブであり、これはブレイクアウトだった。