0

我正在翻译我的主要课程的渲染。如何根据翻译获得鼠标位置?

public void render(GameContainer gc, Graphics g) 
        throws SlickException 
{
    float centerX = 800/2;
    float centerY = 600/2;
    g.translate(centerX, centerY);
    g.translate(-player.playerX, -player.playerY);
    gen.render(g);
    player.render(g);
}

playerX = 800 /2 - sprite.getWidth();
playerY = 600 /2 - sprite.getHeight();

我通过 .2f * delta 更新 keydown 上的玩家位置

图片帮助解释

i92.photobucket.com/albums/l22/occ31191/Untitled-4.png

4

2 回答 2

2

世界坐标=相机位置+鼠标位置

在我对这个问题的回答中计算/解释了相机位置:Slick2D 和 JBox2D。如何绘制

于 2012-04-11T12:05:02.087 回答
1

您正在制作一个基于图块的游戏,其中每个图块似乎具有相同的大小。对于这种情况,您不需要广义的非投影。

想象一下完整的地图。视口只显示了它的一部分;您需要将(x,y)视口的偏移量存储到完整地图中的某个位置。由于鼠标坐标是相对于视口的,因此您需要将此偏移量添加到鼠标坐标上。现在,您可以通过对移动的鼠标坐标与图块的宽度和高度进行模运算轻松获得图块坐标。

实际上,这是从窗口坐标到平铺坐标的坐标变换。

于 2012-04-11T11:43:10.807 回答