Java Slick2d - 如何将鼠标坐标转换为世界坐标

时间:2012-04-11 04:39:54

标签: java mouse coordinates slick2d

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

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

2 个答案:

答案 0 :(得分:2)

世界坐标=摄像机位置+鼠标位置

相机位置是在我对这个问题的回答中计算/解释的:Slick2D and JBox2D. How to draw

答案 1 :(得分:1)

你正在制作一个基于图块的游戏,每个图块看起来都有相同的尺寸。对于这种情况,您不需要广义的非投影。

想象一下完整的地图。视口仅显示其中的一部分;您需要将视口的(x,y)个offets存储到完整的地图中。由于鼠标坐标相对于视口,因此需要将此偏移添加到鼠标坐标。现在,您可以通过对移动的鼠标坐标使用模数操作以及切片的宽度和高度来轻松获取切片坐标。

实际上,这是窗口坐标到 tile 坐标的坐标转换。