昨日の記事の訂正と補足です。
サンプルの def self_mousemove 内の処理(画像の変更)で画面がちらつくということを書きましたが、
self.refresh の扱いが原因でした。
vrubyのプログラムって基本的にそれ自体が無限ループしてるようなものですから
常にマウスポインタの座標をチェックするような命令の中に漠然とself.refreshなんて書いたら
高速で毎回画像を描画しなおしちゃいますもんね。
たぶんこれが原因かと。
で、以下のように書き換えて(一部追記)してみました。
確実に画像が変更された場合のみ self.refresh します。
__________________________
def self_mousemove(shift,x,y)
a = @bmpc
if 20 < x and x < 100 and 40 < y and y < 120
@bmpc = 1
else
@bmpc = 0
end
self.refresh if a != @bmpc
end
__________________________
実行してみたところちらつきが無くなりました。
自分のせいでした、ごめんなさい(滝汗)
ついでに、def self_mousemove(shift,x,y) のx,yがマウスのポインタから座標情報を得ているというのを
視覚的に認識したくて書いたものを示します。
続きを読む