Tip:
Highlight text to annotate it
X
>> DAVIDマラン:それでは、プログラムを書いてみましょう と窓と円を含む
円は前後に跳ねる 左右のオフ
そのウィンドウの縁。
そのためには、のはスタンフォード大学を使用してみましょう ポータブル図書館、最初みましょう
我々はできるようにgevents.hを含める マウスの動きを聞きます。
そのそれでは、次にgobjects.hが含まれてみよう 我々は、楕円形のようなものを宣言することができますか
円、本当に。
そしてそのそれではgwindow.hが含まましょう 私達はのためのグラフィカルウィンドウを持っている
すべて。
>> それでは、通常の方法で主に宣言しましょう。
そして今度は、宣言してインスタンス化してみましょう またはそのウィンドウ、GWindowを作成する -
そして我々は、変数ウィンドウと呼ぶことにします -
newGWindowを取得。
そして、我々は任意にそれを作ってあげる 240ピクセル×320ピクセル。
>> それでは、次の円をインスタンス化してみましょう。
しかし、このサークルをインスタンス化するには、 私たちは、もう少し作業を行う必要があります。
具体的には、のは、このサークルに記入しましょう 全体のことはあるように
黒だけではなく、 その概要を説明します。
GOval -
我々は、円、それを呼ぶことにします -
newGOvalを取得。
私たちは、0、110で、この楕円形をあげるよ、と我々はよ 20ピクセル幅の楕円形を作る
高画素20 - 換言すれば、A 20または10の半径の直径。
>> 今度はその円の色を設定してみましょう 引用、引用終わりであると「ブラック」。レッツ
今、それが満たされる設定 trueを指定することによって。
そして今、最後に、のに円を追加してみましょう などのウィンドウは、以下のことにより、
後者を前者に添加される。
>> それでは、ダブルを宣言しましょう。
我々は、速度、それを呼ぶことにします。
やや恣意、のは言わせて このサークルの速度はなり
2.0、換言すれば、2画素 単位時間毎のため。
そして今、意図的にしてみましょう 無限ループを引き起こす。
>> したがって、このサークルを作る方法 前後にバウンス?
さてそれでは、このループ内で仮定しようという 単位時間毎のために、我々はしている
円を移動するつもりほんの少し 2ピクセルのその速度に基づいてビット
単位時間あたり。
しかし、継続的に、我々はする必要があるとしている 円が触れているかどうかを確認
画面左の右端 画面の端、なぜならもしそうなら、私たち
いわば、バウンスすることが必要です。
>> どのように実装する バウンスの概念?
まあ我々は、2画素のつもりなら 跳ね返るためには、単位時間あたりの権利
右端は、我々は単純に逆にすることができます つまり、単位あたりの負の2ピクセルに
時間の、それによって否定 速度。
だから実際には、バウンスは比較的です 単純明快。
>> まずは、この多くの人に円を移動しましょう これにより、X軸方向のピクセル、
y軸に沿って多くのピクセル。
言い換えれば、我々はそれがしたくない 全くy軸に沿って移動する。
私たちはそれが立ち直るたい 前後左右に。
>> とあれば今度はこのループ内でチェックしてみましょう 円のx座標プラス
円の幅が大きく、 イコール
ウィンドウの幅 -
言い換えれば、もし円の場所 円のプラス幅
自体端を越えて今ある ウィンドウのではと思います
より良い私たちの速度を逆に -
速度は、それによって、負の速度を取得します に正を反転
正、負または負。
しかし、円は何を移動する場合 左から右に、それはそれゆえヒット
左端?
換言すれば、x座標の場合 円は現在、以下の
0に、のは先にして、もう一度行ってみよう 私たちの速度を反転。
>> では、なぜ私は、で追加されていない 円の幅がこの
時間、私は前に行ったように?
さて、覚えておいて、その座標 オブジェクトの定義されています
その左上隅によって、 ではない、その半ばまで。
だからサークルから移動しているとき 左から右に、我々は確認する必要があります
の右端か 円が経過した
ウィンドウの右端。
だから我々は持っている、それが何であるかを理解するために 円のx座標を取得する
プラス、円の幅が移動する 自分自身左上から
コーナー、効果的に 右上。
円は右から移動しているとき 左、一方、我々はする必要はありません
ので、このような付加を気 円の左上隅である
すでに我々はよ値 GET xから取得。
>> それでは、ボールを動かしてみましょう。
今、保存してコンパイルし、これを実行してみましょう このプログラムは、。/バウンスバウンスを行います。
そしてそこに、我々はプログラムを持っている。
>> しかし、円はとてもとても速く動いている、 それはものを見ることはほとんど不可能だ
実際に起こっている。
だから、強制によって、かなりのプログラムのを聞かせて 右上の[X]をクリックする
ここのコーナー。
それでは、ソースコードに戻りましょう と少し物事を遅くする。
>> 換言すれば、この無限以内 ループではなく、公正で移動し、
移動して、再度、広告nauseum、の残るましょう わずか数ミリ秒
再び移動するように進む前に。
特に、のは一番下に行こう ここと単純に無限ループの
10ミリ秒、たとえば、一時停止 各反復に。
それでは、再コンパイルして再実行バウンスしてみましょう。
そして今、我々ははるかに合理的なを参照してください。 我々が見ることができるの実装、
円は本当に上で跳ねる 左右のエッジ。