Schüsse in Richtung der Maus

Hallo,
ich habe einen Shooter programmiert. Nun möchte ich die abgegebene Schüsse in Richtung der Maus abgeben. Allerdings weiß ich nicht ganz recht, wie ich vorgehen soll. Ich habe es mit
MouseInfo.getPointerInfo().getLocation().getY()
gemacht, jedoch funktioniert dies nicht so recht, ganz davon abgesehen, dass hier ja nicht nur das Spielfeld sondern der komplette Screen betrachtet wird.

Wäre euch sehr dankbar, wenn ihr mir erklären könnt wie ich dort vorgehe, oder jemand sogar ein Beispiel hat.

Mein Bullet Code ist der folgende:

Java:
public class Bullet extends Entity {


    /**
     * calls Mob
     */
    public int dx ,dy ;
    private boolean left;
    public double damage;
    private String side;


    public Bullet(Texture texture, double x, double y, TileMap tileMap, double damage, String side){
        super(texture, x, y+6, tileMap);
        this.damage = damage;
        this.side = side;
    }

    public void tick() {
        if (dx == 0 && dy == 0){
            dx =+ (int) MouseInfo.getPointerInfo().getLocation().getX();
            dy =+ (int) MouseInfo.getPointerInfo().getLocation().getY();

        }



        move();

    }



    public void render(Graphics2D g, int offsetX, int offsetY) {

            super.render(g, offsetX + dx, offsetY + dy + 6);

    }




    public void move(){
        boolean horiz = tileMap.getBulletCollision(texture.getWidth(), x, y, x+dx, y, false);
        boolean vert = tileMap.getBulletCollision(texture.getWidth(), x, y, x, y + dy, true);
        if(!horiz){
            x += dx;
            y += dy;
        }
        if(!vert){
            y += dy;
            x += dx;
        }
        if(horiz){
            tileMap.removeEntity(this);
        }

        if(vert){
            tileMap.removeEntity(this);
        }
    }




}

Wichtig zu wissen ist glaube ich nur, dass dx und dy die jeweilige Richtungsveränderung darstellen. Ist dx = +1 geht er auf der "X-Achse +1" usw..
 
Am einfachsten ist es, beim erzeugen direkt die Zielkoordinaten mitzugeben. Die bekommst du z.B. bei Maus-Klicks über das entsprechende Event.


BTW:

Ist das =+ beabsichtigt?
Das ist in dem Fall einfach nur ein unäres plus, was bei ints nichts bewirkt...


Hatte ich nur um Fälle unterschieden zu können beim bloßen draufgucken.

Ich nur in die Richtung des Coursers schießen und nicht genau zum Courser. Die Geschwindigkeit soll ebendfalls immer gleich sein egal wie weit die Maus entfernt ist.

Also brauche ich ja wahrscheinlich Vektoren. Wie berechne ich diese jedoch und erhalte diese in Anpassung an die Spielfeld größe?
 

mihe7

Top Contributor
Ich nur in die Richtung des Coursers schießen und nicht genau zum Courser.
Naja, wenn ich einen Punkt immer weiter in Richtung des Cursors bewege, bin ich irgendwann wo?

Welche Aktion führt eigentlich zum Schuss? Soll sich die Richtung während des "Flugs" in Abhängigkeit der aktuellen Mausposition ändern? Wie wird dx und dy verwendet? Fragen über Fragen.
 
Naja, wenn ich einen Punkt immer weiter in Richtung des Cursors bewege, bin ich irgendwann wo?

Welche Aktion führt eigentlich zum Schuss? Soll sich die Richtung während des "Flugs" in Abhängigkeit der aktuellen Mausposition ändern? Wie wird dx und dy verwendet? Fragen über Fragen.

Das betätigen der Leertaste führt zum Schuss.
Wie bereits gesagt dx gibt an um welchen wert sich die X-Position ändert, dy um welchen Wert sich die Y Position ändert.
Die Kugel soll in Richtung des Coursers fliegen, nach Abschuss den Courser aber nicht weiter folgen.
 

mihe7

Top Contributor
Du kennst den Abschusspunkt o, den Punkt des Mauszeigers m, hast also einen Vektor d = m-o=(m.x-o.x, m.y-o.y) und teilst diesen z. B. durch die betragsmäßig größere der beiden Koordinaten (falls ungleich 0), ggf. auch skaliert.

Wenn Du die Bildschirmkoordinate des Mauszeigers verwenden willst, dann kannst Du z. B. mit Component.getLocationOnScreen() die Bildschirmkoordinate des Spielfelds und somit des Abschusspunkts ermitteln.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Spave Invanders - Wie zeichne ich die Laser-Schüsse? Spiele- und Multimedia-Programmierung 23
G Schüsse zeichnen, Fehler? Spiele- und Multimedia-Programmierung 3
L Schüsse zeichnen Spiele- und Multimedia-Programmierung 13
L Bild in Richtung Maus drehen Spiele- und Multimedia-Programmierung 4
U2nt Pingpong: Richtung/Winkel Spiele- und Multimedia-Programmierung 3
V Jogl: Objekt trotz Rotation immer in gleiche Richtung bewegen Spiele- und Multimedia-Programmierung 5
StrikeTom Auto in bestimmte Richtung fahren lassen Spiele- und Multimedia-Programmierung 37
S Schiff in Richtung der Maus rotieren - Problem :/ Spiele- und Multimedia-Programmierung 5
R Raumschiff in die Richtung fliegen in die es schaut ? Spiele- und Multimedia-Programmierung 14
H Mausbewegungen wie eine echte Maus in 3 dimensionalen Spielen Spiele- und Multimedia-Programmierung 12
B GLFW 3D Maus- Input Spiele- und Multimedia-Programmierung 7
Arif Maus-Objekt im Player Klasse implementieren !? Spiele- und Multimedia-Programmierung 2
B Maus Cursor aus/einblenden bei Unity 3d mit .js Spiele- und Multimedia-Programmierung 1
M [JOGL] Maus über einem gezeichnetem Objekt abfragen? Spiele- und Multimedia-Programmierung 5
S Mausklicks innerhalb eines JFrames/SWTBrowser ohne richtige Maus simulieren Spiele- und Multimedia-Programmierung 6
M Maus an Fedenkreuz heften Spiele- und Multimedia-Programmierung 16
M Beim schießen richtet sich die Kugel nach der Maus aus (Quaternion) Spiele- und Multimedia-Programmierung 5
D Sprite zur Maus bewegen Spiele- und Multimedia-Programmierung 9
G Maus springt --> Free-Hand-Zeichnen Spiele- und Multimedia-Programmierung 2
G Zeichnung mit der Maus bewegen Spiele- und Multimedia-Programmierung 3
M Grafikprogramm, zeichnen mit Maus Spiele- und Multimedia-Programmierung 7
S Problem bei Kartenbewegung mit Maus! Spiele- und Multimedia-Programmierung 3
M Exakte Position auf Kugel mit Maus picken , Java3d Spiele- und Multimedia-Programmierung 14
D Bilderpositionierung mit Maus Spiele- und Multimedia-Programmierung 23
T Maus-Cursor-Position manipulieren Spiele- und Multimedia-Programmierung 3
K Ein 3D-Objekt mit Maus auswählen Spiele- und Multimedia-Programmierung 5
T Problem mit Maus und Bildschirm Spiele- und Multimedia-Programmierung 3
C NavigationBehaviour mit Maus und Keyboard Spiele- und Multimedia-Programmierung 5
A Maus im Spiel-Menu oder nicht? Spiele- und Multimedia-Programmierung 5

Ähnliche Java Themen

Neue Themen


Oben