Erste Schritte Kleines 2D. Spiel Objekt Bewegung funktioniert nicht

z99z

Neues Mitglied
Hallo zusammen:)

ich beschäftige mich in meiner Freizeit seit einigen Woche mit Java und hab schon verschiedenen Compiler Anwendungen erstellt.
Vor einigen tagen habe ich mit einem kleinen 2D Spiel begonnen.
Mein erstes Ziel war das ich mit den Pfeiltasten einen art "Würfel" bewegen kann.
Ganz einfach rechts, links, hoch, runter.
Jedoch komme ich zurzeit nicht weiter..

Ist Zustand:
- Fenster wird erstellt
- Würfel wird gezeichnet
- Tasteneingabe funktioniert
- Koordinaten des Würfels werden je nach drücken der Tasten verändert

Problem:
Der Würfel bewegt sich nicht.

Die Compiler Ausgabe sieht so aus:
show.php
[/URL][/IMG]
show.php

Alle 20ms (Tick) wird die Pos. neu berechnet und gezeichnet.
Danach wird die x pos und y pos ausgegeben (Startwert ist beides mal 50).

Jetzt kommt das was mich am meisten wundert. Ich lass die Koordinaten nur an einer stelle im Programm ausgeben. Aber sie sind nur nach jedem 2. Tick verändert.

Tick
50 Startpos x
50 Startpos y
Tick
65 Pos x nach Bewegung
34 Pos y nach Bewegung
Tick
50
50
Tick
86 Pos x nach Bewegung
23 Pos y nach Bewegung
usw.
Woran kann das liegen?
Wieso bewegt sich der Würfel nicht.

Ich hoffe jemand findet die Zeit und kann sich die Klassen anschauen.
Bin für jeden Tipp auch unabhängig von meinem Problem offen:)

Main
Java:
package pg1;

public class Main {

    public static void main(String[] args) {
   
        new Window();
   
   
    }

}

Window
Java:
package pg1;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

public class Window extends JFrame {

    /**
     *
     */
    private static final long serialVersionUID = 4037606884011315544L;
    private final Panel GamePanel;

    public Window() {

        setTitle("Labyrinth");
        setLocation(700, 400);
        setResizable(false);
        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setFocusable(true);
        requestFocus();
        addKeyListener(new Panel());
        this.GamePanel = new Panel();
        add(GamePanel);
        pack();

        creatMenu();

    }

    public void creatMenu() {

        JMenuBar menuBar = new JMenuBar();
        this.setJMenuBar(menuBar);

        JMenu pauseMenu = new JMenu("Beenden");

        menuBar.add(pauseMenu);
        addpauseMenuItems(pauseMenu);
    }

    public void addpauseMenuItems(JMenu pauseMenu) {

        JMenuItem quitItem = new JMenuItem("Quit");
        pauseMenu.add(quitItem);

        quitItem.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {

                System.exit(0);
            }
        });
    }
}

Panel
Java:
package pg1;

import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JPanel;
import javax.swing.Timer;

public class Panel extends JPanel implements KeyListener {

    /**
     *
     */
    private static final long serialVersionUID = -8764891349435011352L;

    private Würfel Würfel1;

    private final Dimension prefSize = new Dimension(240, 240);
    private Timer t;

    public Panel() {

        setFocusable(true);
        setPreferredSize(prefSize);

        InitGame();
        startGame();
    }

    public void InitGame() {

        creatGameObjects();

        t = new Timer(20, new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                doOnTick();
            }
        });
    }

    @Override
    public void keyPressed(KeyEvent e) {
        switch (e.getKeyCode()) {
        case KeyEvent.VK_UP:
            Würfel1.moveUp();
            break;

        case KeyEvent.VK_DOWN:
            Würfel1.moveDown();
            break;

        case KeyEvent.VK_LEFT:
            Würfel1.moveLeft();
            break;

        case KeyEvent.VK_RIGHT:
            Würfel1.moveRight();
            break;

        }

    }

    @Override
    public void keyReleased(KeyEvent e) {
        switch (e.getKeyCode()) {
        case KeyEvent.VK_UP:
            Würfel1.stopUpDown();
            break;

        case KeyEvent.VK_DOWN:
            Würfel1.stopUpDown();
            break;

        case KeyEvent.VK_LEFT:
            Würfel1.stopLeftRight();
            break;

        case KeyEvent.VK_RIGHT:
            Würfel1.stopLeftRight();
            break;

        }

    }

    public void startGame() {
        t.start();
    }

    public void creatGameObjects() {

        Würfel1 = new Würfel(new Coordinate(50, 50), 20, 20, 1);
    }

    public void doOnTick() {

        Würfel1.makeMove();

        repaint();

        System.out.println("Tick");

    }

    public void paintComponent(Graphics g) {
       
        super.paintComponent(g);

        Graphics2D g2d = (Graphics2D) g;
        g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                RenderingHints.VALUE_ANTIALIAS_ON);

        Würfel1.paintMe(g);

    }

    @Override
    public void keyTyped(KeyEvent e) {
        // TODO Auto-generated method stub

    }
}

Objekt
Java:
package pg1;

public abstract class Objekte {

    private Coordinate objektPos;
    private int width;
    private int hight;
    private int movingDistanceX;
    private int movingDistanceY;

    public Objekte(Coordinate position, int width, int hight) {
        this.objektPos = position;
        this.width = width;
        this.hight = hight;

    }

    public Coordinate getObjektPos() {
        return objektPos;
    }

    public void setObjektPos(Coordinate objektPos) {
        this.objektPos = objektPos;
    }

    public int getWidth() {
        return width;
    }

    public void setWidth(int width) {
        this.width = width;
    }

    public int getHight() {
        return hight;
    }

    public void setHight(int hight) {
        this.hight = hight;
    }

    public int getMovingDistanceX() {
        return movingDistanceX;
    }

    public void setMovingDistanceX(int movingDistanceX) {
        this.movingDistanceX = movingDistanceX;

    }

    public int getMovingDistanceY() {
        return movingDistanceY;
    }

    public void setMovingDistanceY(int movingDistanceY) {
        this.movingDistanceY = movingDistanceY;

    }

    public void moveObject() {
        objektPos.setX(objektPos.getX() + movingDistanceX);
        objektPos.setY(objektPos.getY() + movingDistanceY);

        System.out.println(getObjektPos().getX());
        System.out.println(getObjektPos().getY());
    }

    public void makeMove() {
        moveObject();
    }

    protected abstract void paintMe(java.awt.Graphics g);
}

Würfel
Java:
package pg1;

import java.awt.Color;
import java.awt.Graphics;

public class Würfel extends Objekte {

    private int movingSpeed;

    public Würfel(Coordinate position, int width, int hight, int movingSpeed) {
        super(position, width, hight);
       
        setMovingSpeed(movingSpeed);
   
       
    }

    public void moveUp() {
        setMovingDistanceY(-movingSpeed);

    }

    public void moveDown() {
        setMovingDistanceY(movingSpeed);
    }

    public void stopUpDown() {
        setMovingDistanceY(0);
    }

    public void moveLeft() {
        setMovingDistanceX(-movingSpeed);

    }

    public void moveRight() {
        setMovingDistanceX(movingSpeed);
    }

    public void stopLeftRight() {
        setMovingDistanceX(0);
    }

    public int getMovingSpeed() {
        return movingSpeed;
    }

    public void setMovingSpeed(int movingSpeed) {
        this.movingSpeed = movingSpeed;
    }

    public void makeMove() {
        super.makeMove();
    }

    @Override
    protected void paintMe(Graphics g) {

        g.setColor(Color.GREEN);
        g.fillRect(getObjektPos().getX(), getObjektPos().getY(), getWidth(),
                getHight());

        // System.out.println(getObjektPos().getX());
        // System.out.println(getObjektPos().getY());

    }

}

Coordinate
Java:
package pg1;

public class Coordinate {

    private int x ;
    private int y ;

    public Coordinate(int x, int y) {
        this.setX(x);
        this.setY(y);
    }

    public int getX() {
        return x;
    }

    public void setX(int x) {
        this.x = x;
    }

    public int getY() {
        return y;
    }

    public void setY(int y) {
        this.y = y;
    }

}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Kleines Java Spiel funktioniert nicht. Java Basics - Anfänger-Themen 2
K Kleines Spiel auf Java programmieren Java Basics - Anfänger-Themen 2
H kleines Spiel [Processing] Java Basics - Anfänger-Themen 7
U Bitte Helfen kleines Spiel Java Basics - Anfänger-Themen 9
K Kleines Spiel / Daten speichern Java Basics - Anfänger-Themen 8
T Kleines Spiel realisieren - wie? Java Basics - Anfänger-Themen 6
C Kleines 2D Spiel. Problem. Java Basics - Anfänger-Themen 5
R kleines spiel Java Basics - Anfänger-Themen 11
S Kleines Java-Projekt; Kassenprogramm Java Basics - Anfänger-Themen 7
Kotelettklopfer Kleines Testprogramm mit Interface und einer Usereingabe Java Basics - Anfänger-Themen 16
E Kleines Java-Projekt für Anfänger Java Basics - Anfänger-Themen 10
Koookie Kleines Frage - Antwort Programm (Anfänger) Java Basics - Anfänger-Themen 5
K Erstes kleines Spieleprojekt - Java GUI in HTML einbinden Java Basics - Anfänger-Themen 3
J Kleines Rechenprogramm Java Basics - Anfänger-Themen 13
G Erste Schritte Suche Java Programmierer für kleines Projekt Java Basics - Anfänger-Themen 1
B Input/Output Kleines Netzwerkproblem Java Basics - Anfänger-Themen 2
J OOP Kleines Schülerverwaltungsprogramm Java Basics - Anfänger-Themen 9
F Methoden Kleines Problem mit meinem Glücksrad... Java Basics - Anfänger-Themen 9
N ein kleines GUI mit einem hauch XML Java Basics - Anfänger-Themen 5
T erstes kleines Programm Java Basics - Anfänger-Themen 17
S Kleines Quiz Programm Java Basics - Anfänger-Themen 4
C Hilfe - Kleines Programm macht mir Schwierigkeiten Java Basics - Anfänger-Themen 2
A Kleines Abbruch-Problem mit Do-While-Schleife Java Basics - Anfänger-Themen 4
K Ein kleines Rätsel Java Basics - Anfänger-Themen 2
E Erstes "kleines" Programm Java Basics - Anfänger-Themen 5
D kleines problem bei system.out.println schreibweise Java Basics - Anfänger-Themen 6
C Kleines Problem mit System.out.print Java Basics - Anfänger-Themen 1
A Best Practice Ideen für kleines Anfängerschulprojekt gesucht Java Basics - Anfänger-Themen 4
J kleines Karteikartenprogramm Java Basics - Anfänger-Themen 3
S Kleines Zeichen berechnen Java Basics - Anfänger-Themen 5
fLooojava kleines Projekt - Verwendung von Youtube Java Basics - Anfänger-Themen 22
E Array zu Liste - kleines Problem Java Basics - Anfänger-Themen 6
fLooojava Passwort generieren - kleines Programm Java Basics - Anfänger-Themen 15
H Kleines Prob Java Basics - Anfänger-Themen 5
J Vererbung Kleines Problem bei Vererbung! Java Basics - Anfänger-Themen 2
O Debug-Funktion mit Slick - Kleines Problem Java Basics - Anfänger-Themen 5
J Flaechen vergleichen/kleines Fehler? Java Basics - Anfänger-Themen 23
H Kleines Problem bei den Schleifen Java Basics - Anfänger-Themen 5
M Kleines Problem mit der Rekursion Java Basics - Anfänger-Themen 20
K Kleines Projekt Java Basics - Anfänger-Themen 2
T Kleines Game mit Kollision Java Basics - Anfänger-Themen 2
J Mal wieder ein kleines Toleranzproblem Java Basics - Anfänger-Themen 20
T kleines problem mit switch case Java Basics - Anfänger-Themen 11
R Kleines Programm, benötige Hilfe! Java Basics - Anfänger-Themen 6
V Schon wieder ein kleines problem...dieses mal mit do-while loop Java Basics - Anfänger-Themen 9
R Login mit Datenbankabfrage: Kleines Problem! Java Basics - Anfänger-Themen 6
K Kleines Anfänger Problem bei der Abfrage Java Basics - Anfänger-Themen 8
X Kleines JMenuBar Problem Java Basics - Anfänger-Themen 8
D Kleines Abfrageproblem Java Basics - Anfänger-Themen 3
K kleines Rekursionsproblem Java Basics - Anfänger-Themen 7
P RSA Verschlüsselung kleines Problem Java Basics - Anfänger-Themen 5
B Suche kleines Java-Applet Java Basics - Anfänger-Themen 6
P Kleines Problemm mit einer NullPointerException Java Basics - Anfänger-Themen 2
R kleines Kunstprogramm "mkbox" perfektionieren Java Basics - Anfänger-Themen 13
P wahrscheinlich ein kleines Problem Java Basics - Anfänger-Themen 7
P Kleines Projekt -> Große Überlegungen Java Basics - Anfänger-Themen 2
H Kleines Problem mit der Polymorphie Java Basics - Anfänger-Themen 2
S "Kleines" Problem mit dem Timer Java Basics - Anfänger-Themen 4
K kleines Array-Problem Java Basics - Anfänger-Themen 6
T Kleines Verständnissproblem mit Regex Java Basics - Anfänger-Themen 4
U Kleines Problem mit Konstruktor^^ Java Basics - Anfänger-Themen 7
S Kleines Kartenspiel mit Java Java Basics - Anfänger-Themen 2
D kleines Eclipse-Problem ! Java Basics - Anfänger-Themen 2
I Kleines Program, fehler? Java Basics - Anfänger-Themen 2
S kleines Würfelspiel Java Basics - Anfänger-Themen 10
0 Frage zu Architektur: Server eines kleines Spiels Java Basics - Anfänger-Themen 4
F kleines Programm für ungerade oder gerade Zahl. Java Basics - Anfänger-Themen 18
C kleines Menü erzeugen und anzeigen Java Basics - Anfänger-Themen 11
S Kleines TickTackTou Java Basics - Anfänger-Themen 10
O Kleines Problem mit Konstruktor mit Parametern aus generischer Klasse...oder so ;) Java Basics - Anfänger-Themen 2
M Kleines Problem mit Threads (synchronized) Java Basics - Anfänger-Themen 3
J Java, kleines denkproblem. :) Java Basics - Anfänger-Themen 4
N Kleines Problemchen mit ButtonGroup Java Basics - Anfänger-Themen 2
W ein kleines Projekt! Aber wie beginnen Java Basics - Anfänger-Themen 4
S Kleines Problem... NaN, Infinity? Java Basics - Anfänger-Themen 9
B Drag and Drop fähige Trackliste..nurnoch ein kleines Problem Java Basics - Anfänger-Themen 16
G Kleines Problem mit File Java Basics - Anfänger-Themen 7
O Neuen Blackberry 8800 oder Curve gegen kleines Programm Java Basics - Anfänger-Themen 9
Z kleines projekt Java Basics - Anfänger-Themen 3
G ein kleines java prog - hat aber einen fehler-bitte um hilfe Java Basics - Anfänger-Themen 5
GambaJo Brauche Bewertung + Tipps für mein kleines Projekt Java Basics - Anfänger-Themen 4
N Nur ein kleines Installationsproblem . Java Basics - Anfänger-Themen 5
G Kleines Problem mit Nimmspiel Java Basics - Anfänger-Themen 8
U kleines problem bei ner aufgabe :( Java Basics - Anfänger-Themen 8
G Kleines Problem mit Array Java Basics - Anfänger-Themen 14
S Kleines Programm mit ArrayList Java Basics - Anfänger-Themen 7
M Kleines Programm Java Basics - Anfänger-Themen 5
M DBCP - Kleines Beispiel Java Basics - Anfänger-Themen 3
R Unicode-Wert in Binär und Dezimal umformen - kleines Problem Java Basics - Anfänger-Themen 1
G Kleines Problem Java Basics - Anfänger-Themen 3
D kleines script abhaengig von Ordner Bilder kopieren Java Basics - Anfänger-Themen 11
G Kleines Grundsatzproblem Java Basics - Anfänger-Themen 5
S Ich habe ein kleines Problem mit meinem Übungsprogramm Java Basics - Anfänger-Themen 7
S Hab ein kleines Problem :) Java Basics - Anfänger-Themen 4
K kleines bild ausgeben Java Basics - Anfänger-Themen 4
D noch ein kleines Problem Java Basics - Anfänger-Themen 4
M kleines generics problem Java Basics - Anfänger-Themen 15
B Kleines? Jedenfalls Problem mit Borland-Together! Java Basics - Anfänger-Themen 4
M kleines Java Programm (Verwaltung) Java Basics - Anfänger-Themen 16
K Kleines Programm zur Stapelverarbeitung schreiben, aber wie? Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben