我目前有一个2D游戏,我试图按照某些坐标移动.png图像。如果我将此对象放在(0,0)然后尝试移动到(500,500),我可以执行以下操作:
public void move() {
if (x < 500) {
x += velocityX;
}
if (y < 500) {
y += velocityY;
}
}
这可行,但仅仅因为它是完美的对角线。使用该系统,我只能水平,垂直或对角移动对象,但从不介于两者之间。如果我尝试这样的话:
public void move() {
if (x < 500) {
x += velocityX;
}
if (y < 400) {
y += velocityY;
}
}
物体将以完美的对角线移动,直到在y轴上达到400,它将水平移动,最后一位在x轴上达到500。我如何制作它以便我可以在追踪直线路径时将对象移动到任何坐标?
答案 0 :(得分:0)
要在窗口中对角线移动完美,您必须确保velocityX
和velocityY`的比例应该是这样的,
velocityX width
----------- = -----------
velocityY height
如果width
为500,height
为400且velocityX
为5,那么
velocityY should be 4