1 00:00:00,000 --> 00:00:00,260 2 00:00:00,260 --> 00:00:03,010 >> DAVIDマラン:それでは、プログラムを書いてみましょう と窓と円を含む 3 00:00:03,010 --> 00:00:05,820 円は前後に跳ねる 左右のオフ 4 00:00:05,820 --> 00:00:07,120 そのウィンドウの縁。 5 00:00:07,120 --> 00:00:09,960 そのためには、のはスタンフォード大学を使用してみましょう ポータブル図書館、最初みましょう 6 00:00:09,960 --> 00:00:14,830 我々はできるようにgevents.hを含める マウスの動きを聞きます。 7 00:00:14,830 --> 00:00:20,970 そのそれでは、次にgobjects.hが含まれてみよう 我々は、楕円形のようなものを宣言することができますか 8 00:00:20,970 --> 00:00:22,110 円、本当に。 9 00:00:22,110 --> 00:00:26,090 そしてそのそれではgwindow.hが含まましょう 私達はのためのグラフィカルウィンドウを持っている 10 00:00:26,090 --> 00:00:27,020 すべて。 11 00:00:27,020 --> 00:00:30,390 >> それでは、通常の方法で主に宣言しましょう​​。 12 00:00:30,390 --> 00:00:35,095 そして今度は、宣言してインスタンス化してみましょう またはそのウィンドウ、GWindowを作成する - 13 00:00:35,095 --> 00:00:37,090 そして我々は、変数ウィンドウと呼ぶことにします - 14 00:00:37,090 --> 00:00:39,790 newGWindowを取得。 15 00:00:39,790 --> 00:00:44,450 そして、我々は任意にそれを作ってあげる 240ピクセル×320ピクセル。 16 00:00:44,450 --> 00:00:46,190 >> それでは、次の円をインスタンス化してみましょう。 17 00:00:46,190 --> 00:00:48,740 しかし、このサークルをインスタンス化するには、 私たちは、もう少し作業を行う必要があります。 18 00:00:48,740 --> 00:00:51,340 具体的には、のは、このサークルに記入しましょう 全体のことはあるように 19 00:00:51,340 --> 00:00:53,910 黒だけではなく、 その概要を説明します。 20 00:00:53,910 --> 00:00:54,850 GOval - 21 00:00:54,850 --> 00:00:56,450 我々は、円、それを呼ぶことにします - 22 00:00:56,450 --> 00:00:58,310 newGOvalを取得。 23 00:00:58,310 --> 00:01:04,810 私たちは、0、110で、この楕円形をあげるよ、と我々はよ 20ピクセル幅の楕円形を作る 24 00:01:04,810 --> 00:01:09,070 高画素20 - 換言すれば、A 20または10の半径の直径。 25 00:01:09,070 --> 00:01:14,120 >> 今度はその円の色を設定してみましょう 引用、引用終わりであると「ブラック」。レッツ 26 00:01:14,120 --> 00:01:19,030 今、それが満たされる設定 trueを指定することによって。 27 00:01:19,030 --> 00:01:24,100 そして今、最後に、のに円を追加してみましょう などのウィンドウは、以下のことにより、 28 00:01:24,100 --> 00:01:26,390 後者を前者に添加される。 29 00:01:26,390 --> 00:01:27,910 >> それでは、ダブルを宣言しましょう​​。 30 00:01:27,910 --> 00:01:29,200 我々は、速度、それを呼ぶことにします。 31 00:01:29,200 --> 00:01:32,380 やや恣意、のは言わせて このサークルの速度はなり 32 00:01:32,380 --> 00:01:36,290 2.0、換言すれば、2画素 単位時間毎のため。 33 00:01:36,290 --> 00:01:39,380 そして今、意図的にしてみましょう 無限ループを引き起こす。 34 00:01:39,380 --> 00:01:42,060 >> したがって、このサークルを作る方法 前後にバウンス? 35 00:01:42,060 --> 00:01:45,190 さてそれでは、このループ内で仮定しようという 単位時間毎のために、我々はしている 36 00:01:45,190 --> 00:01:48,890 円を移動するつもりほんの少し 2ピクセルのその速度に基づいてビット 37 00:01:48,890 --> 00:01:50,070 単位時間あたり。 38 00:01:50,070 --> 00:01:52,900 しかし、継続的に、我々はする必要があるとしている 円が触れているかどうかを確認 39 00:01:52,900 --> 00:01:56,480 画面左の右端 画面の端、なぜならもしそうなら、私たち 40 00:01:56,480 --> 00:01:58,530 いわば、バウンスすることが必要です。 41 00:01:58,530 --> 00:02:00,380 >> どのように実装する バウンスの概念? 42 00:02:00,380 --> 00:02:04,400 まあ我々は、2画素のつもりなら 跳ね返るためには、単位時間あたりの権利 43 00:02:04,400 --> 00:02:08,259 右端は、我々は単純に逆にすることができます つまり、単位あたりの負の2ピクセルに 44 00:02:08,259 --> 00:02:10,400 時間の、それによって否定 速度。 45 00:02:10,400 --> 00:02:13,160 だから実際には、バウンスは比較的です 単純明快。 46 00:02:13,160 --> 00:02:19,260 >> まずは、この多くの人に円を移動しましょう これにより、X軸方向のピクセル、 47 00:02:19,260 --> 00:02:21,040 y軸に沿って多くのピクセル。 48 00:02:21,040 --> 00:02:23,600 言い換えれば、我々はそれがしたくない 全くy軸に沿って移動する。 49 00:02:23,600 --> 00:02:25,950 私たちはそれが立ち直るたい 前後左右に。 50 00:02:25,950 --> 00:02:31,910 >> とあれば今度はこのループ内でチェックしてみましょう 円のx座標プラス 51 00:02:31,910 --> 00:02:36,515 円の幅が大きく、 イコール 52 00:02:36,515 --> 00:02:38,520 ウィンドウの幅 - 53 00:02:38,520 --> 00:02:42,180 言い換えれば、もし円の場所 円のプラス幅 54 00:02:42,180 --> 00:02:44,840 自体端を越えて今ある ウィンドウのではと思います 55 00:02:44,840 --> 00:02:46,090 より良い私たちの速度を逆に - 56 00:02:46,090 --> 00:02:49,080 57 00:02:49,080 --> 00:02:53,680 速度は、それによって、負の速度を取得します に正を反転 58 00:02:53,680 --> 00:02:56,090 正、負または負。 59 00:02:56,090 --> 00:02:59,740 しかし、円は何を移動する場合 左から右に、それはそれゆえヒット 60 00:02:59,740 --> 00:03:00,670 左端? 61 00:03:00,670 --> 00:03:06,490 換言すれば、x座標の場合 円は現在、以下の 62 00:03:06,490 --> 00:03:12,530 0に、のは先にして、もう一度行ってみよう 私たちの速度を反転。 63 00:03:12,530 --> 00:03:14,980 >> では、なぜ私は、で追加されていない 円の幅がこの 64 00:03:14,980 --> 00:03:16,410 時間、私は前に行ったように? 65 00:03:16,410 --> 00:03:19,050 さて、覚えておいて、その座標 オブジェクトの定義されています 66 00:03:19,050 --> 00:03:22,200 その左上隅によって、 ではない、その半ばまで。 67 00:03:22,200 --> 00:03:25,810 だからサークルから移動しているとき 左から右に、我々は確認する必要があります 68 00:03:25,810 --> 00:03:28,910 の右端か 円が経過した 69 00:03:28,910 --> 00:03:30,200 ウィンドウの右端。 70 00:03:30,200 --> 00:03:34,100 だから我々は持っている、それが何であるかを理解するために 円のx座標を取得する 71 00:03:34,100 --> 00:03:38,080 プラス、円の幅が移動する 自分自身左上から 72 00:03:38,080 --> 00:03:40,650 コー​​ナー、効果的に 右上。 73 00:03:40,650 --> 00:03:43,700 円は右から移動しているとき 左、一方、我々はする必要はありません 74 00:03:43,700 --> 00:03:47,550 ので、このような付加を気 円の左上隅である 75 00:03:47,550 --> 00:03:50,700 すでに我々はよ値 GET xから取得。 76 00:03:50,700 --> 00:03:54,140 >> それでは、ボールを動かしてみましょう。 77 00:03:54,140 --> 00:04:00,900 今、保存してコンパイルし、これを実行してみましょう このプログラムは、。/バウンスバウンスを行います。 78 00:04:00,900 --> 00:04:02,230 そしてそこに、我々はプログラムを持っている。 79 00:04:02,230 --> 00:04:05,760 >> しかし、円はとてもとても速く動いている、 それはものを見ることはほとんど不可能だ 80 00:04:05,760 --> 00:04:07,060 実際に起こっている。 81 00:04:07,060 --> 00:04:10,620 だから、強制によって、かなりのプログラムのを聞かせて 右上の[X]をクリックする 82 00:04:10,620 --> 00:04:11,720 ここのコーナー。 83 00:04:11,720 --> 00:04:15,300 それでは、ソースコードに戻りましょう と少し物事を遅くする。 84 00:04:15,300 --> 00:04:19,240 >> 換言すれば、この無限以内 ループではなく、公正で移動し、 85 00:04:19,240 --> 00:04:22,850 移動して、再度、広告nauseum、の残るましょう わずか数ミリ秒 86 00:04:22,850 --> 00:04:24,910 再び移動するように進む前に。 87 00:04:24,910 --> 00:04:28,480 特に、のは一番下に行こう ここと単純に無限ループの 88 00:04:28,480 --> 00:04:32,820 10ミリ秒、たとえば、一時停止 各反復に。 89 00:04:32,820 --> 00:04:36,690 それでは、再コンパイルして再実行バウンスしてみましょう。 90 00:04:36,690 --> 00:04:40,190 そして今、我々ははるかに合理的なを参照してください。 我々が見ることができるの実装、 91 00:04:40,190 --> 00:04:43,310 円は本当に上で跳ねる 左右のエッジ。 92 00:04:43,310 --> 00:04:45,395