チラツキをなくせ! -- その1 --

update()の上書き

------------------------------------

ごめんなさい。
Java対応ブラウザだとここにアプレットが表示されます。



Source(MovingBall.java)
------------------------------------

実行するマシンのスピードにもよりますが、ここまで書いてきたアプレットではボールがチラツいて見えるはずです。このチラツキを少なくすることを考えます。

repaint()メソッドを呼び出すと、ただちにpaint()メソッドが呼び出されるわけではなく、まずupdate()メソッドが呼び出され、その後paint()メソッドが呼び出されます。

このupdate()メソッドはアプレット全体を背景色で塗り潰すようにデフォルトではなっています。そして、この動作がチラツキの原因です。

------------------------------------

そこでまずは、update()をオーバーライドして

public void update(Graphics g) {
    paint(g);
}

のように背景色で塗り潰すことをやめたのが、このページのアプレットです。

見ればわかるように、上手くいきません。

このアプレットではボールが動いていくので駄目ですが、同じ場所に異なるイメージを描いていく場合は、この方法でチラツキをなくすことができます。

------------------------------------

前の項目へ次の項目へ

「リメイキング・オブ・MovingBall」のページへ