[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
前のプログラムでチカチカしていた理由。
それは、背景を塗りつぶした瞬間が見えてしまっていた、ということです。
背景を塗りつぶした瞬間と、その後に円を描画した絵が交互に映ったため、チカチカ見えたのです。
次のようにプログラムを変えましょう。
// 変数初期化
x = 100
y = 100
r = 10
repeat
// 描画モード→0
redraw 0
// 背景塗りつぶし
color 0, 0, 0 // 黒
boxf
// 円の描画
color 255, 255, 255 // 白
circle x - r, y - r, x + r, y + r
// 描画モード→1
redraw 1
// x座標を5増やす
x = x + 5
// 50ms待つ
wait 5
loop
redraw命令が新しく加わりました。redraw命令は描画モードを変更する命令です。
描画モード0は、描画命令が実行されても、実際の画面には反映されず、仮想画面上の描画にとどまる、と言う状態です。
一方描画モード1は、描画命令が実行されたその時に、実際の画面に反映されるというモードです。
また、描画モード1にした瞬間、それまで仮想画面にあったイメージが実際の画面に反映されます。
と言うことは、いろいろ描画する前に描画モードを0にしておいて、全ての描画が終わったところでモードを1にすれば、描画の過程は画面に反映されず、結果のみが見えるということになります。これで、ちらつきが解決されます。
これから、いろいろプログラムを書いていく上で、呪文のように毎回書くことになります。大切なことなので、是非覚えておきましょう。