>> 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ループの、そして我々はここに到達
我々は、クリックを待つつもりだ場所 ように、ゲームを終了する前に
ゲームだけで、すぐにしません 私たちに閉じます。
そして最後に、我々は閉じます ウィンドウとそれはあります。
私の名前はロブであり、これはブレイクアウトだった。