gpt4 book ai didi

java - 在 JavaFX 中获取图像/变换/形状以旋转以跟随鼠标光标

转载 作者:行者123 更新时间:2023-12-01 11:45:24 24 4
gpt4 key购买 nike

我尝试这样做,但在某些位置,该对象(在本例中为我的 ImageView) ,只会“传送”到另一个程度。

如何才能使其不出现断断续续并在 JavaFX 场景中正确跟随鼠标光标?

最佳答案

我最近在一篇关于 how to create a heat seeking missile 的博客文章中做到了这一点.

与您相关的部分是以下代码片段:

public void move() {  

SpriteBase follower = this;

if( target != null)
{
//get distance between follower and target
double distanceX = target.getCenterX() - follower.getCenterX();
double distanceY = target.getCenterY() - follower.getCenterY();

//get total distance as one number
double distanceTotal = Math.sqrt(distanceX * distanceX + distanceY * distanceY);

//calculate how much to move
double moveDistanceX = this.turnRate * distanceX / distanceTotal;
double moveDistanceY = this.turnRate * distanceY / distanceTotal;

//increase current speed
follower.dx += moveDistanceX;
follower.dy += moveDistanceY;

//get total move distance
double totalmove = Math.sqrt(follower.dx * follower.dx + follower.dy * follower.dy);

//apply easing
follower.dx = missileSpeed * follower.dx/totalmove;
follower.dy = missileSpeed * follower.dy/totalmove;

}

//move follower
follower.x += follower.dx;
follower.y += follower.dy;

//rotate follower toward target
double angle = Math.atan2(follower.dy, follower.dx);
double degrees = Math.toDegrees(angle) + 90;

follower.r = degrees;

}

跟随者是你的对象,目标是鼠标光标。您可以使用 Point2D 的 Java 8 功能来计算距离,这将使代码更少。出于与 Java 7 的兼容性原因,我没有这样做。

如果这对您有帮助,请告诉我。如果这不是您要找的内容,请说得更准确。

关于java - 在 JavaFX 中获取图像/变换/形状以旋转以跟随鼠标光标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29180676/

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