我正在为我的国际象棋比赛制作一个gui,我想让这些棋子(图像)的动作变得生动。我希望它是一个平滑的动画,所以它开始慢,加速,然后减速到终点停止。现在,我有一个带有GridLayout的JFrame用于我的棋盘,以及网格中的碎片图像。可以毫不费力地做到这一点吗?我是否需要研究类似openGL的东西(之前从未使用过它)?
答案 0 :(得分:3)
你不需要OpenGL,因为基本的Swing动画可以很好地处理这个问题。只需将JLabel控制的棋子从使用GridLayout的容器升级到玻璃板,在玻璃板上制作动画,使其在目标容器上移动,然后将其从玻璃板放下到目标容器(可能你的GridLayout保存JPanels,所以目的地将是一个JPanel)。 Swing Timer应该可以很好地运行你的动画循环。
更确切地说,你的逻辑可能是这样的:
说完这一切之后,我自己的首选是简单地允许用户将JLabel片段从源拖动到目标,并将其拖动为动画。我有代码,显示如何在这个网站上的某个地方执行此操作。对我来说,这是用户移动棋子的更自然的方式。等一下,我会搜索我的链接。