gpt4 book ai didi

java - 如何使用 Android Canvas 将图像从一个点移动到另一个点

转载 作者:IT老高 更新时间:2023-10-28 23:36:19 28 4
gpt4 key购买 nike

我正在开发一款游戏,在这个游戏中,我必须将 Canvas 上的图像从一个点沿任意方向移动到另一个点,而不仅仅是垂直或水平。

如何以这种方式移动该图像?

最佳答案

上完数学课后,发现这很容易解决。首先,我们需要获取目标移动的角度。

float deltaX = targetX - startX;
float deltaY = targetY - startY;
float angle = Math.atan2( deltaY, deltaX );

startX/Y 可以是当前 X/Y。

现在我们已经计算了角度,我们可以将它应用到当前坐标:

currentX += speed * Math.cos(angle);//Using cos
currentY += speed * Math.sin(angle);//or sin

处理 X 和 Y 将增加多少的计算。如果您还需要设置自定义速度,请使用速度作为自定义变量。如果您不需要更高的速度,请删除该变量。

要移动对象,请将 X/Y 应用于对象:

c.drawBitmap(bm, x, y, null);

示例:

int speed = 10;
int x, y;
int targetX = 100, targetY = 600;
int startX = 900, startY = 100;
public void render(Canvas c){
super.draw(c);
float deltaX = targetX - startX;
float deltaY = targetY - startY;
float angle = Math.atan2( deltaY, deltaX );
x += speed * Math.cos(angle);//Using cos
y += speed * Math.sin(angle);//or sin
c.drawBitmap(bm, x, y, null);
(...)
}

关于java - 如何使用 Android Canvas 将图像从一个点移动到另一个点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3930421/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com