暂停线程并操纵数组

时间:2016-04-24 22:28:47

标签: java multithreading input thread-safety

我正在构建一个俄罗斯方块游戏,用于更新阵列中的JPanel图标。

当一件作品产生时,会创建一个新的线程,将棋子向下移动直到发生碰撞。一旦工件发生碰撞,线程就会停止,并在一个新工件的位置创建一个新工具。

我还有一个键盘输入,由键盘控制器等待移动,旋转,并将棋子向下撞到游戏网格的底部。

当我踩下这块时,执行从keylistener传递到处理砰地关上这块的功能。偶然发生的事情是,在我猛击下来之后,游戏循环崩溃并且没有开始下一个循环,所以我只是控制在棋盘底部的这块。

我尝试中断线程然后重新启动,我试着睡眠线程,但这只是停止了问题。我还想象问题的一部分可能是图标数组不是线程安全的吗?使用矢量会解决问题吗?

我应该这样做吗? 我想要做的是听键盘输入,当读取键盘输入时,完成游戏循环的当前循环,停止游戏循环线程直到键盘监听器功能完成,然后重新启动游戏循环停止。

感谢您的任何建议!

0 个答案:

没有答案