Java-Draw';外机架的自动调平
我正在开发一个2d游戏;我目前正在开发一个在地图上移动相机的系统,我使用了以下方法:我的相机有自己的坐标-x,y; 我有一个ArrayList,里面有我所有的精灵,它们的坐标从0到mapSize,每个精灵都有一个Draw函数,看起来很简单 g2d.drawImage(纹理,getX(),getY(),getX()+getSizeX(),y+getSizeY(),0,0,getSizeX(),getSizeY(),null) 我总是画我所有的精灵,不检查它们是否可见; 此绘图时计算机上是否有负载(当绘制远离屏幕大小的纹理时)? 渲染前是否需要检查对象是否可见 我的主DrawAll函数包含()Java-Draw';外机架的自动调平,java,performance,graphics,2d,game-engine,Java,Performance,Graphics,2d,Game Engine,我正在开发一个2d游戏;我目前正在开发一个在地图上移动相机的系统,我使用了以下方法:我的相机有自己的坐标-x,y; 我有一个ArrayList,里面有我所有的精灵,它们的坐标从0到mapSize,每个精灵都有一个Draw函数,看起来很简单 g2d.drawImage(纹理,getX(),getY(),getX()+getSizeX(),y+getSizeY(),0,0,getSizeX(),getSizeY(),null) 我总是画我所有的精灵,不检查它们是否可见; 此绘图时计算机上是否有负载(
public void DrawAll(graphics2D g2d){
translate(-playerCamera.getX(),-playerCamera.getY());
对于(int i=0;i
这不是很好,因为在第二次平移后绘制的线条在移动屏幕时可能会抖动。
我是否应该放弃平移并在每个对象的绘图功能中手动执行偏移坐标?graphics2D将剪裁您的绘图。因此,它不会产生太大的影响。如果你有很多精灵,你应该考虑使用SaleLoad索引来选择屏幕上的精灵。()Thx有关信息,我将了解更多有关空间索引的信息;但是如何使用translate函数呢?
public void DrawAll(graphics2D g2d){
g2d.translate(-playerCamera.getX(), -playerCamera.getY());
for (int i = 0; i < mapSprites.size(); i++) {
mapSprites.get(i).Draw(g2d);
}
g2d.translate(-playerCamera.getX(), -playerCamera.getY());
drawSomeStrings, etc....
}