Projektil zur Maus Position

Lauezl

Mitglied
Hey Leute,
libgdx.png
Ich hätte gerne so wie auf dem Bild, dass das Projektil von einer Waffe zur Maus-Position fliegt. Ich habe schon ein bisschen gegoogelt und bisher das gefunden:
Code:
pathX = xMouse - x;
pathY = yMouse - y;
double distance = Math.sqrt(pathX * pathX + pathY * pathY);
directionX = pathX / distance;
directionY = pathY / distance;

//Projektil Koordinaten
position.x +=directionX*delta*100;
position.y +=directionY*delta*100;

Es funktioniert irgendwie nicht richtig(siehe Bild).

LibGdx2.jpg

Danke im Vorhinein.
 

White_Fox

Top Contributor
Trigonometrie...Satz des Pythagoras usw. sollten dir weiterhelfen.

Edit: So kompliziert brauchst du es gar nicht. Probiere mal das folgende aus (ich nehme mal deinen Code und bearbeite ihn etwas):

Java:
pathX = xMouse - x;
pathY = yMouse - y;
//double distance = Math.sqrt(pathX * pathX + pathY * pathY);
//directionX = pathX / distance;
//directionY = pathY / distance;

//Projektil Koordinaten
position.x +=pathX*delta*100;
position.y +=pathY*delta*100;
 
Zuletzt bearbeitet:

Lauezl

Mitglied
Trigonometrie...Satz des Pythagoras usw. sollten dir weiterhelfen.

Edit: So kompliziert brauchst du es gar nicht. Probiere mal das folgende aus (ich nehme mal deinen Code und bearbeite ihn etwas):

Java:
pathX = xMouse - x;
pathY = yMouse - y;
//double distance = Math.sqrt(pathX * pathX + pathY * pathY);
//directionX = pathX / distance;
//directionY = pathY / distance;

//Projektil Koordinaten
position.x +=pathX*delta*100;
position.y +=pathY*delta*100;
Stimmt. Nur das Problem von bleibt immer noch. Egal wo ich draufdrücke, die Schüsse gehen irgendwie nicht dahin wo sie sollen. z. B. Ich drücke rechts unten in die Ecke dann geht der Schuss Rechts oben in die ecke.
 

White_Fox

Top Contributor
Das wäre so ein Moment um mal den Debugger zur Anwendung zu bringen. Ist bei einigen verpönt, aber ich finde es praktisch um mal zu überprüfen ob in deinen Variablen auch steht was du erwartest.
 

Lauezl

Mitglied
LibGdx3.jpg
So ich bin schon ein bisschen weitergekommen.
Also die Maus-Y Koordinate fängt oben bei 0 an,
und die Koordinate wo ich zeichne fängt unten die y Koordinate bei 0 an.
Ich benütze libGDX und bekomme die Maus Koordinaten von "Gdx.input.getY()".
Also könnte man das irgendwie umdrehen oder sowas in der Art.
Liebe Grüße
 

Blender3D

Top Contributor
dass das Projektil von einer Waffe zur Maus-Position fliegt.
1637012218342.png
Java:
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.Polygon;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

@SuppressWarnings("serial")
public class ShooterDisplay extends Display {
    private Cannon cannon;
    private BulletStack bullets = new BulletStack(5);

    public ShooterDisplay(int width, int height, int fps) {
        super(width, height, fps);
        addMouseListener(new MouseAdapter() {
            @Override
            public void mouseReleased(MouseEvent e) {
                Point p = e.getPoint();
                cannon.setDirection(cannon.getFirePoint(), p);
                bullets.add(new Bullet(cannon.getCenter(), 15, -cannon.getAngle()));
            }
        });
    }

    @Override
    protected void init(int width, int height) {
        int cannonW = width / 20;
        int cannonH = (int) (1.5 * cannonW);
        int x[] = new int[] { 0, cannonH, 0 };
        int y[] = new int[] { 0, cannonW / 2, cannonW };
        cannon = new Cannon(new Polygon(x, y, x.length), 1);
        Dimension dim = getPreferredSize();
        cannon.setPosition(dim.width / 2 - cannonW / 2, dim.height / 2 - cannonH / 2);
        cannon.setAngle(90);
    }

    @Override
    protected void update() {
        cannon.move();
        bullets.move();
    }

    @Override
    protected void updateGraphic(Graphics g) {
        bullets.draw(g);
        cannon.draw(g);
    }

}
Shooter:
import javax.swing.JFrame;

public class Shooter {
    public static void main(String[] args) {
        ShooterDisplay game = new ShooterDisplay(500, 500, 80);
        JFrame frame = new JFrame("Shooter");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(game);
        frame.setResizable(false);
        frame.pack();
        frame.setVisible(true);
        game.start();
    }
}
 

Anhänge

  • shooter.jar
    11,5 KB · Aufrufe: 2
Ähnliche Java Themen
  Titel Forum Antworten Datum
Tobero JFrame nimmt keinen Key oder Maus inputs Allgemeine Java-Themen 0
M Java – Warum kann ich plötzlich bei Android Studio Grafische Benutzeroberflächen mit der Maus gestalten? Allgemeine Java-Themen 5
V Maus mitthilfe Bewegungssensor steuern (Java) Allgemeine Java-Themen 12
I AWT MouseListener Extra Knopf auf der Maus Allgemeine Java-Themen 9
N Globale Maus Allgemeine Java-Themen 7
SeppiHinteregger Maus realistisch simulieren Allgemeine Java-Themen 5
S JFreechart: ValueMarker mit der Maus ziehen? Allgemeine Java-Themen 12
K Screenshot mit Maus Allgemeine Java-Themen 2
Z zeit zwischen maus drücken und loslassen Allgemeine Java-Themen 7
T [RXTX] GPS-Maus (Comport) effizient auslesen Allgemeine Java-Themen 6
S GPS-Maus über USB ansprechen Allgemeine Java-Themen 8
C Markierung durch Maus lesen Allgemeine Java-Themen 9
M Maus durch JavaProgramm bewegen Allgemeine Java-Themen 2
G Eingabegerät unterscheiden (z.B. Maus oder Touchpad) Allgemeine Java-Themen 3
S GPS-Maus auslesen Allgemeine Java-Themen 14
M Automatische Steuerung der Maus Allgemeine Java-Themen 6
G TJable MULTIPLE_INTERVAL_SELECTION ohne Maus Allgemeine Java-Themen 2
B Maus-Cursor zurücksetzen Allgemeine Java-Themen 4
J Hinergrund und Position verändern Allgemeine Java-Themen 2
Tobero Wie bekomme ich in welchem Quadrat sich eine Position in einem Grid befindet Allgemeine Java-Themen 11
C Position von Pixeln in Bilder auslesen Allgemeine Java-Themen 2
kodela aktuelle Position des Hauptfensters abfragen Allgemeine Java-Themen 12
Aruetiise Interface Position durch JButton ermitteln Allgemeine Java-Themen 5
T JasperReportsBuilder Position merken Allgemeine Java-Themen 0
C Position speichern von verschiebbaren Elementen auf JPanel Allgemeine Java-Themen 3
S per Mausklick Position ermitteln Allgemeine Java-Themen 8
T HTML Tag Position mittels Pattern ermitteln Allgemeine Java-Themen 7
c_sidi90 Werte an bestimmten Position aus PDF in DB sichern Allgemeine Java-Themen 2
G Position des Print Dialogs vorgeben Allgemeine Java-Themen 3
R BigDecimal, Position des Kommas Allgemeine Java-Themen 2
C Wie kann man die IText Table Position bestimmen? Allgemeine Java-Themen 3
W LayoutManager Position der Componenten nachträglich ändern Allgemeine Java-Themen 12
Z Position/Größe von Windows-Fenstern ermitteln Allgemeine Java-Themen 12
B von Array-Element auf Position in Array Allgemeine Java-Themen 7
M Position 2 Monitor Allgemeine Java-Themen 5
Q Serialisierung / Speicherung Geschwindingkeit & Aktuelle Position Allgemeine Java-Themen 7
X Position eines Gegenstandes über Webcam erkennen Allgemeine Java-Themen 11
R Google Keyword Position Allgemeine Java-Themen 11
M JTable verändert Position auf meinem JPanel Allgemeine Java-Themen 3
N InputStream erst ab gegebener Position Allgemeine Java-Themen 4
D Position des Mauszeigers setzen! Allgemeine Java-Themen 3
L 8 bytes von bestimmter position weg lesen? Allgemeine Java-Themen 11
H Position von JTextField Allgemeine Java-Themen 2
N JSplitPane: feste Divider-Position? Allgemeine Java-Themen 8
S addAtPosition - Zahl an einer bestimmten Position einfügen Allgemeine Java-Themen 8

Ähnliche Java Themen


Oben