虫つぶし

やっぱり、ブログだもん。twitterでもつぶやくけどバグつぶししたらこっちにも書こう。

今日つぶしたバグはマップを新規作成すると、一度マウスがコントロールに入って出ていかない限りタブの切り替え部分でもマウス操作ができてしまうというもの。原因は少しでも急激にマウスを動かしたときに処理落ちでマップがきれいに、描けないことを防ごうとしてTimerをつかって入力を受け付けたことによるもので、コンストラクタで問答無用にTimer.Enable=true;にしていたからでした。

対策として、MapEditorクラスにpublicでstaticなActiveEditorというGUIDとインスタンスごとにわけたGUIDフィールドを作成しました。そしてコンストラクタでActiveEditorとインスタンスごとにわけたGUIDが等しいかを比較してタイマーの有効・無効を決めるようにしました。ActiveEditorはMainFormにいじらせてます。


あんまりpublicでstaticな変数は作りたくないのですが、ほかの方法も思いつかず。

関連記事

  1. 無理矢理バグフィックス
  2. GDI+において描画処理を高速化する方法
  1. コメントはまだありません。

  1. 2009年 11月 18日
    トラックバック先 :XNA Today » 2009/11/18 のニュース