繁体   English   中英

如何通过坐标使对象从一个点移动到另一个点?

[英]How to make an object move from one point to another via coordinates?

我目前有一个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。 我如何制作它以便我可以在沿着直线路径移动物体到任何坐标?

要在窗口中对角移动完美,必须确保velocityX和velocityY`的比率应该是这样的,

 velocityX         width
-----------  =  -----------
 velocityY         height

在你的情况下,如果width是500, height是400,如果velocityX是5,那么

 velocityY should be 4

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM