В настоящее время я пытаюсь работать над игрой в бильярд с 3 подушками. У меня небольшая проблема. После того, как я отпустил мышь, чтобы ударить по мячу палкой, мяч не идет туда, куда должен.
Каким будет лучший подход для решения этой проблемы?
Я пытался использовать mouseX
и mouseY
в формуле, которая заставляет мяч идти туда, куда он должен идти. Но это работает только для одного квадранта. Мяч в основном уходит в верхний левый угол JFrame
.
У меня такое ощущение, что мне нужно использовать несколько операторов if
и переменную с именем angle
, но я не уверен, как это сделать.
public void mouseReleased(MouseEvent e)
{
LineDraw = false;
MouseDragged = false;
WHITExSpeed = -mouseX * 0.005;
WHITEySpeed = -mouseY * 0.005;
//repaint();
}
public void mouseDragged(MouseEvent e)
{
LineDraw = true;
MouseDragged = true;
mouseX = e.getX();
mouseY = e.getY();
repaint();
}
...
//This if statement in is paintCompoment
if(LineDraw)
{
Line2D.Double Stick = new Line2D.Double(white.getCenterX(),white.getCenterY(), mouseX, mouseY);
g2d.setColor(Stick_Color);
g2d.setStroke(new BasicStroke(5));
g2d.draw(Stick);
}
Мяч должен идти туда, куда палка была направлена после отпускания кнопки мыши.