gpt4 book ai didi

java - 尝试将对象从固定起点移动到鼠标单击的坐标

转载 作者:行者123 更新时间:2023-12-02 09:46:20 25 4
gpt4 key购买 nike

我试图让一个矩形从固定位置移动到游戏中的点击点。我已经可以从鼠标监听器类中的 e.getX 和 e.getY 方法获得良好的坐标。我还通过增加和减少positionX和Y值来使矩形沿直线移动到侧面或上下移动,但我需要一种方法将其移动到我点击的任何点,基本上我需要设置x的变化和 y。我的想法是计算从点击点和起点开始的线的上升和运行,然后将 x 和 y 值设置为上升和运行。如果我这样做,我需要一种方法来减少上升并将值降低到最低值,以便它流畅地移动。或者,如果有一种我没有想到的方法,您可以提供任何有用的指导。

最佳答案

你现在画得怎么样?下面是我在一个小游戏中用来射击子弹的方法,我制作/真的应该在某个时候完成。

这绝不是您需要的所有代码,并且在某些地方有更好的方法来做事情(我相信人们会开始在评论部分中告诉我:))但它应该给出您的工作基础。

其中缺少的一件事是调节它重绘的速度(fps),抱歉,但我现在不记得执行此操作的简单方法(需要回到我的实际工作!)希望它有帮助.

它的基本结构将是这样的:

//these set out the current position of your rectangle
double recX, reYy, recH, recW;

//this gives something to manage speed
int speed;

public void paintComponent(Graphics g) {
g.drawRectangle(recX,rexY,recH,recW);
}

//here we work out the movement
public void clickedScreen(double x, double y){
double newX = x;
double newY = y;
//calculate the speed to move at
vX = newX - recX;
vY = newY - recY;
//get the distance
length = Math.sqrt((v1*v1)+(v2*v2));
//make it a unit vector
v1 = v1/length;
v2 = v2/length;
}

public moveRec(){
recX = recX+(v1*speed);
recY = recY+(v2*speed);
}

while(true) {
moveRec();
repaint();
}

关于java - 尝试将对象从固定起点移动到鼠标单击的坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8439788/

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