我目前正在用Java开发游戏,并且出现了问题。这是一个策略游戏。

我的游戏区域或地图是JPanel,我将其放置在JScrollPane中,从而可以在地图上滚动。我在地图上放置了其他JPanels,例如用于显示有关当前资源信息的栏。当然,当我滚动时,theese JPanels不会跟随,现在我想知道对此的最佳策略是什么?

现在,我使用键盘上的箭头滚动,然后使用要向同一方向移动的JPanels的setBounds。例如,对于右箭头键,i增加setBounds参数中的x值(x,y,sizeX和sizeY)。这不是很漂亮,如果您按住向右箭头键几秒钟,具有图像的JPanel将开始闪烁。

我有什么选择?谢谢你的时间!

最佳答案

我会将“资源”栏等放在滚动面板之外。即,让主面板具有BorderLayout,将地图区域作为中心部分,并将资源栏作为南部分。

      Main panel (BorderLayout)
 _______________________________________
|  ___________________________________  |
| |                                 |A| |
| |                                 | | |
| |                                 | | |
| |     Center component:           | | |
| |                                 | | |
| | (Scrollpane containing the map) | | |
| |                                 | | |
| |                                 | | |
| |_________________________________|v| |
| |<_______________________________>|   |
|                                       |
|  ___________________________________  |
| |                                   | |
| | South component: Resources        | |
| |___________________________________| |
|_______________________________________|

10-07 22:51