我正在做一个简单的游戏作为学习练习。游戏由一个方格网格组成,每个方格都有一个背景图像,可以包含任意数量的对象和玩家令牌,这些对象和玩家令牌可以相互叠加。此时,该板只是一个JPanel,图像是在paintComponent()方法中使用drawImage()绘制的。这在技术上是可行的,但它相当笨拙,而且可能不是最好的方法。现在,我希望能够在不重画整个棋盘的情况下重画一个给定的方块,而我最初的实现似乎是缺乏的。
我想出的解决方案是用一个自定义的图标类来表示正方形,用一个带有包含自定义图标的GridLayout的JPanel来表示棋盘。问题是,最终,一些背景或对象图像将是动画的,并且在一个正方形上可能会有多个动画的东西。我在想我可以用动画GIF来做这件事。
我记得我读过在drawImage方法中使用ImageObserver会导致动画显示,但它看起来不像是一个ImageObserver。使用板卡JPanel作为ImageObserver是个好主意吗?除了动画GIF之外,还有更好的方法吗?
出现的另一个解决方案是带有JLabels的JLayeredPanes网格,其中包含相互叠加的适当图像,但由于某些原因,这似乎就像是用大锤拍打苍蝇。
发布于 2013-10-21 00:07:28
发布于 2013-10-21 02:27:21
也许Animated Icon会给你一些建议。
https://stackoverflow.com/questions/19484316
复制