在Java中按鼠标方向发送圆圈

在Java中按鼠标方向发送圆圈,java,object,jframe,Java,Object,Jframe,我正在做一个游戏,当我点击鼠标时,球射出。我对Java不是很有经验,所以我很困惑。这就像,球从屏幕的中间底部开始(所以ballx和bally有他们的位置),一旦鼠标点击一个方向,球就会朝那个方向射击。。。 多谢各位 package graphics; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; public class Ballz extends LASSPanel { //Variab

我正在做一个游戏,当我点击鼠标时,球射出。我对Java不是很有经验,所以我很困惑。这就像,球从屏幕的中间底部开始(所以ballx和bally有他们的位置),一旦鼠标点击一个方向,球就会朝那个方向射击。。。 多谢各位

package graphics;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;

public class Ballz extends LASSPanel
{
//Variables for the circle (Global Variables)

int circleX, circleY, circleDX, circleDY, circleSize, circleSpeed;

//Colors
Color circleColor;
Color backgroundColor;
Dimension size;
double mouseX;
double mouseY;

public Ballz()
{
    //Ball Variables
    circleX = 250;
    circleY = 250;
    circleSize = 15;
    circleSpeed = (1);  

    circleColor = new Color (245,245,245);
    backgroundColor = new Color (28,28,28);
    size = new Dimension(0,0);
}
public void update()
{
    //Get size of screen
    getSize(size);

    //Get mouse coordinates
    mouseX = getMouseX();
    mouseY = getMouseY();

    //Call custom method to find angle

    //Screen borders
    if (circleX >= (size.width) - circleSize)
    {
        circleDX = -circleDX;
        circleX = size.width-circleSize;

    }
    if (circleX <= 0)
    {
        circleDX = -circleDX;
        circleX = 0;
    }
    if (circleY >= (size.height -circleSize))
    {
        circleDY = -circleDY;
        circleY = size.height-circleSize;   
    }
    if (circleY <= 0)
    {
        circleDY = -circleDY;
        circleY = 0;
    }

    circleX += circleDX;
    circleY += circleDY;

    repaint();

}

public void paint(Graphics g)
{


    //Game Colors
    g.setColor(circleColor);
    g.fillOval(circleX, circleY, circleSize, circleSize);
    setBackground(backgroundColor); 

}
//This is the code that will get the direction between two points that I give.
    public double getAngle (int x1, int x2, int y1, int y2)
{

    double Direction = 0;

    double dx = y2-y1;
    double dy = x2-x1;

     Direction = Math.atan2(dy,dx);

    return Direction;

}
}
封装图形;
导入java.awt.Color;
导入java.awt.Dimension;
导入java.awt.Graphics;
公共类Ballz面板
{
//圆的变量(全局变量)
int circleX,circleY,circleDX,circleDY,circleSize,circleSpeed;
//颜色
彩色圆环色;
颜色背景色;
尺寸;
双层鼠标;
双老鼠;
公共鲍尔兹()
{
//球变量
circleX=250;
circleY=250;
圆圈大小=15;
圆周速度=(1);
圆环色=新颜色(245);
背景颜色=新颜色(28,28,28);
尺寸=新尺寸(0,0);
}
公共无效更新()
{
//获取屏幕的大小
getSize(size);
//获取鼠标坐标
mouseX=getMouseX();
mouseY=getMouseY();
//调用自定义方法以查找角度
//屏幕边框
如果(circleX>=(大小.宽度)-circleSize)
{
circleDX=-circleDX;
circleX=size.width-circleSize;
}
如果(circleX=(size.height-circleSize))
{
circleDY=-circleDY;
圆圈=大小。高度-圆圈大小;
}

如果(circleY)你能发布你的代码吗?如果有什么东西不起作用,我们会尝试查找错误。我一直无法将它添加到我的代码中。我认为是错误的方法(比如只获取mouseX和mouseY,并将xDirection和yddirection添加到mouseX和mouseY的点中)我添加了一个我用来查找方向的代码,但仅此而已。