Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-Draw';外机架的自动调平_Java_Performance_Graphics_2d_Game Engine - Fatal编程技术网

Java-Draw';外机架的自动调平

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) 我总是画我所有的精灵,不检查它们是否可见; 此绘图时计算机上是否有负载(

我正在开发一个2d游戏;我目前正在开发一个在地图上移动相机的系统,我使用了以下方法:我的相机有自己的坐标-x,y; 我有一个ArrayList,里面有我所有的精灵,它们的坐标从0到mapSize,每个精灵都有一个Draw函数,看起来很简单

g2d.drawImage(纹理,getX(),getY(),getX()+getSizeX(),y+getSizeY(),0,0,getSizeX(),getSizeY(),null)

我总是画我所有的精灵,不检查它们是否可见; 此绘图时计算机上是否有负载(当绘制远离屏幕大小的纹理时)? 渲染前是否需要检查对象是否可见

我的主DrawAll函数包含()

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....

}