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ミリ秒、たとえば、一時停止 各反復に。 それでは、再コンパイルして再実行バウンスしてみましょう。 そして今、我々ははるかに合理的なを参照してください。 我々が見ることができるの実装、 円は本当に上で跳ねる 左右のエッジ。