-2

我得到了一些工作,但无法在我的脑海中解释,它是如何通过将其原始位置远离它正在绘制所有内容的位置来绘制每张图片而玩家在中间,我的大脑被弄糊涂了。

我想知道它为什么起作用

public static Integer ufox = 102,ufoy = 115;


public void paint (Graphics g){
    g.clearRect(0,0,1000,1000);
    g.translate(-ufox+102,-ufoy+115);
    g.setColor(Color.WHITE);
    g.fillRect(0, 0, 1000, 1000);
    //backround enemies etc
    g.setColor(Color.BLUE);
    g.drawString(ufo,ufox,ufoy);//this is the player!
    g.setColor(Color.GREEN);
}


public void run() {
    while(true){
        ufox=//game logic
        ufoy=//game logic
        try{Thread.sleep(20);}catch(Exception e){}  
        repaint();  
    }
}

//key listener and main...
4

1 回答 1

0

这是相对坐标的问题。如果您想象自己在现实世界中移动,您可以将其概念化为您的坐标发生变化以反映您的运动,或者其他一切的坐标发生变化(在相反方向),而您的坐标保持不变。像代码中那样的坐标变换可以在这两个(绝对和相对)坐标系之间进行转换。

于 2013-06-03T17:00:32.913 回答