我目前正在用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 | |
| |___________________________________| |
|_______________________________________|