0
Timer 動きがなぜ止まるのかわからない。
eclipse4.4でfillOvalで描画する円を利用したゲームを作ろうとしています。
今以下の3つのjavax.swing.Timerを作成しています。
カウントアップ用
10msごとにint変数に++して、その数値をJLabelに表示
ボール(円)作成用
1000msごとにrepaint()をし、ボールの座標・移動速度・色をそれぞれのjava.util.Arrayに追加
新規の座標は既存のボールとぶつからないところにするようにしています。
ボール移動用
10msごとにrepaint()をし、それぞれのボールの座標を移動させ、壁や互いのボールとの接触を調べて移動の向きを変えたり
実行させてみると、途中で止まってしまいます。
どれくらいで止まるかは毎回様々です。
空間は優に空いているときに止まったりするので、ボール作成のところで止まっているなんてことはないと思います。
そこで、原因を探るためにまずはボール同士の接触チェック辺りで無限ループにでもなっているのでは?とそのループの内と外のところに標準出力を使って動きを探ってみたところ、画面の動きが止まったときにコンソールの中身がすべて消えてしまいました。
デバッグをやってみようにもどうすればいいかがよくわからなくて。
試しに画面の動きが止まったときに一時停止させてみると、自分が書いた標準出力の深いところで止まっているようでした。
いったいなぜ止まってしまったのでしょうか?