Auf einem Stick bewegen

gerredtor

Mitglied
Hallo, ich habe einen Char in LWJGL erstellt und ich möchte das dieser char auf einem strich(Titel falsch sry) zu den ziel coordianten geht mein code:

Code:
            if(x < toX)
            {
                x += (delta/1.0f);
            }

            if(x > toX)
            {
                x -= (delta/1.0f);
            }

            if(y < toY)
            {
                y += (delta/1.0f);
            }

            if(y > toY)
            {
               y -= (delta/1.0f);
            }

aber das klappt nicht sauber weil der spieler z.b. schräg nach unten geht und dann einfach rechts geht bis zum ziel aber nicht auf dem makiertem weg
 

Robat

Top Contributor
Wenn es dir nur darauf ankommt, dass dein Spieler zum Ziel kommt, könntest du dir Ja markante Eckpunkte in einem Array speichern und dir Immer ein Element als "neues" toX setzten bis du da bist. so Würdest du ihm eine Richtung vorgeben.

Das von jemanden der noch nicht so viel mit Spieleprogrammierung zu tun Hatte. Gibt eventuell (Sehr wahrscheinlich :D ) einen effizienteren weg :p
 

gerredtor

Mitglied
Habe es nun so gelöst: kompletter code

Code:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.fourthfloorproductions.TowerDefense.Entity;

import com.fourthfloorproductions.TowerDefense.Engine.Frame;
import com.fourthfloorproductions.TowerDefense.Engine.FrameImage;
import com.fourthfloorproductions.TowerDefense.Engine.Laufllienien;
import com.fourthfloorproductions.TowerDefense.Engine.Weglinie;
import com.fourthfloorproductions.TowerDefense.Game;
import java.util.ArrayList;
import org.newdawn.slick.geom.Point;
import org.newdawn.slick.geom.Vector2f;
/**
*
* @author Christoph
*/
public abstract class Entity {
   
    private int live;
    private int damage;
   
    private Vector2f pos;
    private Vector2f speed;
   
    private int x,y;
    private FrameImage image;
    private Laufllienien lauflienien;
    private int aktWeg;
    private boolean Living = true;
   
    float lastX, lastY;
   
    float rx, ry;
   
    public Entity(ArrayList<Weglinie> weglinie)
    {
        this.image = new FrameImage("src/res/Downloads.png", 60,60);
       
        this.aktWeg = 0;
        this.lauflienien = new Laufllienien(weglinie);
       
        this.x = lauflienien.getWege().get(0).fromX;
        this.y = lauflienien.getWege().get(0).fromY;
       
        this.pos = new Vector2f(x,y);
        this.speed = new Vector2f(lauflienien.getWege().get(aktWeg).toX,lauflienien.getWege().get(aktWeg).toY);
        this.speed.setTheta(getAngle(new Point(lauflienien.getWege().get(aktWeg).toX, lauflienien.getWege().get(aktWeg).toY)));
    }
   
    public void draw(Frame f)
    {
        if(Living)
        {
            f.drawImage(image,pos.getX()-30,pos.getY()-30);
            rx=pos.copy().getX()-30;
            ry=pos.copy().getY()-30;
            f.drawLine(pos.getX(), pos.getY(), pos.getX()+30, pos.getY()+30);
        }
    }
       
    public final float getAngle(Point target) {
        float angle = (float) Math.toDegrees(Math.atan2(target.getY() - y, target.getX() - x));

        if(angle < 0){
            angle += 360;
        }

        return angle;
    }
   
    public boolean isFinal()
    {
        boolean f = false;
       
        int finalPosX = lauflienien.getWege().get(aktWeg).toX;
        int finalPosY = lauflienien.getWege().get(aktWeg).toY;
       
        if((finalPosX < lastX && finalPosX > pos.getX()) || (finalPosX > lastX && finalPosX < pos.getX()))
        {
           if((finalPosY < lastY && finalPosY > pos.getY()) || (finalPosY > lastY && finalPosY < pos.getY()))
           {
               f = true;
           }
        }
       
        return f;
    }
   
    public void update(int delta)
    {       

        if(isFinal())
        {
            if(aktWeg == lauflienien.getWege().size()-1)
            {
                Game.live -= damage;
                Living = false;
            }else{
                aktWeg += 1;
               
                this.x = lauflienien.getWege().get(aktWeg).fromX;
                this.y = lauflienien.getWege().get(aktWeg).fromY;
               
                this.pos = new Vector2f(x,y);
                this.speed = new Vector2f(lauflienien.getWege().get(aktWeg).toX,lauflienien.getWege().get(aktWeg).toY);
                this.speed.setTheta(getAngle(new Point(lauflienien.getWege().get(aktWeg).toX, lauflienien.getWege().get(aktWeg).toY)));
            }  
        }else{
            lastX = pos.getX();
            lastY = pos.getY();
           
            Vector2f realSpeed = speed;
            realSpeed.normalise();
            realSpeed.scale(0.1f*delta);

            pos.add(realSpeed);
        }       
    }
   
    public float getX()
    {
        return this.rx;
    }
   
    public float getY()
    {
        return this.ry;
    }
   
    public Vector2f getVector()
    {
        return this.pos;
    }
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Rendering order auf einem ismetrischen Grid Spiele- und Multimedia-Programmierung 8
P Wie kann ich einem Programm hinter eine GUI verstecken? Spiele- und Multimedia-Programmierung 12
J (Libgdx) animation nur einmal in einem Event aufrufen Spiele- und Multimedia-Programmierung 1
B Programmieren wie der Befehl /ban in Minecraft geblockt wird aber nicht /ban mit einem Argument Spiele- und Multimedia-Programmierung 1
P selectedItem aus einem Methodenerstellten JPanel auslesen. Spiele- und Multimedia-Programmierung 5
O Problem beim Aufrufen des Spiels von einem Menü Spiele- und Multimedia-Programmierung 7
G Entity Verwaltung in einem 2D Spiel Spiele- und Multimedia-Programmierung 1
G Collision Detection in einem 2D Sandbox Game. Spiele- und Multimedia-Programmierung 2
E Einem A*-Pfad folgen Spiele- und Multimedia-Programmierung 27
windl MP3-Tags von einem Inputstream auslesen Spiele- und Multimedia-Programmierung 5
U DPI von einem Bild definieren Spiele- und Multimedia-Programmierung 5
X Erklärung zu einem Tic Tac Toe Spiel Spiele- und Multimedia-Programmierung 1
C Hilfe bei einem Mosaikspiel Spiele- und Multimedia-Programmierung 16
M [JOGL] Maus über einem gezeichnetem Objekt abfragen? Spiele- und Multimedia-Programmierung 5
P Winkel von einem Punkt zum anderen berechnen Spiele- und Multimedia-Programmierung 9
X Kleines Problem mit Java Reflections und einem eigenen Eventhandler Spiele- und Multimedia-Programmierung 1
S Java3D: Primitives zu einem Objekt kombinieren Spiele- und Multimedia-Programmierung 7
Fl4sh1 Datum und Uhrzeit von einem Ereignis ausgeben lassen Spiele- und Multimedia-Programmierung 3
P Frage zu einem Projekt "Einarmiger Bandit" 3 Walzen / 9 Zeichnungen BLUEJ Spiele- und Multimedia-Programmierung 10
K Grundsätzlicher Spieleaufbau an (m)einem Beispiel Spiele- und Multimedia-Programmierung 4
S Problem mit Sichtfeld/Licht in einem Raster Spiele- und Multimedia-Programmierung 5
M Farbwerte für Flächen aus einem Bild erkennen Spiele- und Multimedia-Programmierung 3
A Drehen von einem Image Spiele- und Multimedia-Programmierung 4
F Bot updaten von einem Browser game Spiele- und Multimedia-Programmierung 7
W Java3D: Kanten die hinter einem Objekt liegen werden gezeigt Spiele- und Multimedia-Programmierung 2
B Reset bei einem Spiel Spiele- und Multimedia-Programmierung 16
C auf einem PC kein mp3 unter Java Spiele- und Multimedia-Programmierung 6
A Steuerung des Bewegungsflusses bei einem Netzwerkspiel Spiele- und Multimedia-Programmierung 18
R Mehrere Shader in einem Program Spiele- und Multimedia-Programmierung 8
B Generierung einer Wertetabelle aus einem Bild Spiele- und Multimedia-Programmierung 3
Z Kugeln aufgrund von Daten aus einem Array verschieben Spiele- und Multimedia-Programmierung 2
S Probleme mit JMenu in einem JFrame mit BufferStrategy Spiele- und Multimedia-Programmierung 2
K Kanten anzeigen lassen in einem Shape3D-Objekt Spiele- und Multimedia-Programmierung 4
A Interaktion von J3D in einem Applet Spiele- und Multimedia-Programmierung 4
N In einem Kasten springende Bälle programmieren...Hilfe Spiele- und Multimedia-Programmierung 7
H Speichern und Öffnen von einem Zeichenprogramm Spiele- und Multimedia-Programmierung 4
A Wie kann ich die Dateigröße aus einem tiff auslesen? Spiele- und Multimedia-Programmierung 2
hdi mehrere Threads/Tasks in einem synchronisieren -> TaskPoo Spiele- und Multimedia-Programmierung 36
N Farberkennung und -ersetzung in einem Bild Spiele- und Multimedia-Programmierung 2
F Umsetzung von einem Partikelsystem Spiele- und Multimedia-Programmierung 4
J Java3D Rotationsproblem bei einem 3D-Maennchen Spiele- und Multimedia-Programmierung 3
B Frage zur Spielsteuerung bei einem rundenbasiertes Spiel Spiele- und Multimedia-Programmierung 5
K Seitenlänge aus einem Würfel lesen Spiele- und Multimedia-Programmierung 3
K Einzelne Pixel in einem Bild lesen Spiele- und Multimedia-Programmierung 5
T Kollisionsabfrage von einem Stein mit einem Ball Spiele- und Multimedia-Programmierung 5
G Einen gif oder jpg Datei aus einem Graphics Objekt o. JFrame Spiele- und Multimedia-Programmierung 2
A 3D Gegenstand in einem 2D Koordinatensystem darstellen. Spiele- und Multimedia-Programmierung 3
K Hilfe bei Grafikeinbindung in einem Spiel Spiele- und Multimedia-Programmierung 6
D Image.getGraphics() in einem Frame Spiele- und Multimedia-Programmierung 4
G Bufferimage bei einem Frame Spiele- und Multimedia-Programmierung 4
I Zweite Kamera in einem SimpleUniverse Spiele- und Multimedia-Programmierung 6
Z Schach Figuren bewegen Spiele- und Multimedia-Programmierung 4
B Spieler auf besonderer Bahn bewegen Spiele- und Multimedia-Programmierung 1
M Minecraft Spieler move/run (bewegen) Spiele- und Multimedia-Programmierung 0
D Java Bild bewegen funktioniert nicht Spiele- und Multimedia-Programmierung 8
A Spiel Figur ansprechen und bewegen Spiele- und Multimedia-Programmierung 3
astro151 JButtons mit Mausklicks bewegen Spiele- und Multimedia-Programmierung 2
M bewegen eines Objektes Spiele- und Multimedia-Programmierung 2
L JavaFX Objekte bewegen Spiele- und Multimedia-Programmierung 3
M Kamera "am Rande einer Kugel bewegen" Spiele- und Multimedia-Programmierung 4
O Fehler bei Programmierung lässt Figur nicht bewegen Spiele- und Multimedia-Programmierung 5
javampir Lange Hintergrundgrafik einfügen und bewegen Spiele- und Multimedia-Programmierung 3
D Problem beim bewegen einer Figur Spiele- und Multimedia-Programmierung 2
R Canvas Circle bewegen? Spiele- und Multimedia-Programmierung 14
K auf Mapraster frei bewegen Spiele- und Multimedia-Programmierung 7
T Android OpenGL Bewegen Spiele- und Multimedia-Programmierung 5
K Zum Ziel bewegen Spiele- und Multimedia-Programmierung 4
Helgon Große Welt bewegen? Spiele- und Multimedia-Programmierung 15
A Wie wird die Person im Game animiert, dass sie ihre Körperteile bewegen? Spiele- und Multimedia-Programmierung 3
G 2D Welt bewegen Spiele- und Multimedia-Programmierung 20
V Jogl: Objekt trotz Rotation immer in gleiche Richtung bewegen Spiele- und Multimedia-Programmierung 5
M Figur bewegen Spiele- und Multimedia-Programmierung 7
F RPG - Spielfigur soll sich nicht frei bewegen können. Anregugen wären gerne gesehen^^ Spiele- und Multimedia-Programmierung 13
N Objekt entgegengesetzt bewegen Spiele- und Multimedia-Programmierung 8
D Sprite zur Maus bewegen Spiele- und Multimedia-Programmierung 9
S Mehrere Steine gleichzeitig setzen und bewegen Spiele- und Multimedia-Programmierung 4
V Java3D: automatisches Bewegen der Kamera Spiele- und Multimedia-Programmierung 19
2 Kugel bewegen? Spiele- und Multimedia-Programmierung 17
L Figur soll sich selbständig Bewegen Spiele- und Multimedia-Programmierung 12
G Zeichnung mit der Maus bewegen Spiele- und Multimedia-Programmierung 3
R Teilgraphen bewegen Spiele- und Multimedia-Programmierung 5
H mit Java2D Markierung über JTable zeichnen und diese bewegen Spiele- und Multimedia-Programmierung 2
A Bilder bewegen Spiele- und Multimedia-Programmierung 2
Z Obejkt drehen & vorwärts bewegen Spiele- und Multimedia-Programmierung 9
D nicht 4-eckiges bild auf Hintergrund bewegen Spiele- und Multimedia-Programmierung 2
G Bewegen von Objekten Spiele- und Multimedia-Programmierung 4
B Hilfe gesucht!! (bewegen von grafischen Objekten) Spiele- und Multimedia-Programmierung 3

Ähnliche Java Themen

Neue Themen


Oben