Java绘制特定对象
我正在用Java编写一个基于网格自上而下视图的游戏。我不太熟悉JPanel paintComponent()和repaint()方法,并且在创建快速屏幕绘制函数时遇到困难。 每个瓷砖都是一个具有瓷砖的对象。绘制瓷砖(g,x,y)在g上的(x,y)处绘制瓷砖。我想找到一个很好的方法,只画特定的瓷砖,但我不知道如何做到这一点。 我有一个世界级的TileAt(x,y)来获取tile,但是我所做的每一次尝试都会导致口吃或抛出错误。 感谢您的帮助! -Renmusxd 编辑:我尝试的:Java绘制特定对象,java,swing,optimization,paint,Java,Swing,Optimization,Paint,我正在用Java编写一个基于网格自上而下视图的游戏。我不太熟悉JPanel paintComponent()和repaint()方法,并且在创建快速屏幕绘制函数时遇到困难。 每个瓷砖都是一个具有瓷砖的对象。绘制瓷砖(g,x,y)在g上的(x,y)处绘制瓷砖。我想找到一个很好的方法,只画特定的瓷砖,但我不知道如何做到这一点。 我有一个世界级的TileAt(x,y)来获取tile,但是我所做的每一次尝试都会导致口吃或抛出错误。 感谢您的帮助! -Renmusxd 编辑:我尝试的: 我还不太习惯Jav
我还不太习惯Java图形,我尝试过覆盖paintComponent并添加paintComponent(g,x,y),但它不喜欢我不调用repaint。我不再有代码,因为我用paintAll版本替换了它。抱歉。通常,每次重新绘制整个屏幕都比较容易-在大多数现代机器上使用Swing应该足够快 如果您确实想进行部分更新,那么最好的方法可能是:
- 创建一个屏幕外的
,其大小应与您的游戏显示区域相同(如果您想允许滚动,则稍大一点)buffereImage
- 将您的瓷砖绘制到此屏幕外图像中李>
- 重新绘制视图时(即在
方法中),只需一次性将整个BuffereImage绘制到屏幕上即可paintComponent
paintComponent
方法绘制图像。您可能需要查看该方法,该方法允许您指定要重新绘制的区域。你可能会发现通读一下非常有用,谢谢!我会调查的。