Spieler bewegen

Java20134

Bekanntes Mitglied
Hallo,

Ich habe in einer paint Methode mehrere Objekte erstellt und will jetzt bei dem Rechteck einen KeyListener erstellen, wie mache ich das?
 

SilverClaw

Aktives Mitglied
Also für sowas gibt es nun wirkllich hunderte Tutorials, schau doch ml selbst.
Ich würde dir aber empfehlen, nicht für irgendwelche Rechtecke, sondenr nur für dein Hauptfenster/Panel/Component einen Listener zu benutzen. Der kann ja einfach die Position deiner Rechtecke ändern.
 

Java20134

Bekanntes Mitglied
Ja das stimmt zwar, es funktioniert bei mir aber nicht:
Java:
package packaget;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

public class Test extends JPanel implements Runnable, KeyListener {

	private boolean left, right; 
	private static double spielerX; 

	public static void main(String[] args){		
		//Frame erstellen
		JFrame frame = new JFrame();
		frame.setVisible(true);
		frame.setTitle("Ball");
		frame.setBounds(100,100,500,600); 
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		//Objekt vom Typ Ball (erbt von JPanel + implementiert Runnable)
		Test ball = new Test();
		frame.add(ball); 
		
		//Thread erstellen + starten
		new Thread(ball).start();
		
		spielerX = frame.getWidth()*0.5-100*0.5; 
	}
	
	public Test(){
		addKeyListener(this); 
	}
	
	//Zeichnen des Balls + Rechtecks
	public void paint(Graphics g){
		super.paint(g);
		
		g.setColor(Color.GREEN);
		g.fillRect((int) spielerX, (int) (getHeight()-22), 100, 20);
	}

	//hoch und runter zwischen dem Frame
	public void run() {
		while(true){
			try{	
				if(left){
					spielerX -= 5; 
				}
				
				else 
					if(right){
						spielerX += 5; 
					}
			}
			catch(Exception e){
				JOptionPane.showMessageDialog(null, "Error: " +e, "Fehler!", JOptionPane.ERROR_MESSAGE); 
			}
		}
	}

	public void keyPressed(KeyEvent e) {	
		if(e.getKeyCode() == KeyEvent.VK_LEFT){            
				left = true; 
				right = false; 
			}                
		if(e.getKeyCode() == KeyEvent.VK_RIGHT){            
				right = true; 
				left = false; 
			}              
	}

	public void keyReleased(KeyEvent e) {
		left = false; 
		right = false; 
	}

	public void keyTyped(KeyEvent e) {
	}
}
 

SilverClaw

Aktives Mitglied
Also so wie der Code aufgebaut ist, war es schon bei dem bisschen Programm nicht einfach, da durchzusteigen...aaaalso:

1. Bau ein JFrame besser in Swingutilies.invokeLater(new Runnable {...und so weiter auf.

2. Der Listener muss zum frame hinzugefügt werden! Also frame.addKeyListener(ball)...dann hat es bei mir immerhin reagiert.

3. So wie es jetzt aufgebaut ist, flitzt der Spieler dann sofort beim ersten Tastendruck weg. Am besten benutzt du einen Swing-Timer, um das ganze in bestimmten Schritten zu aktualisieren.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Spieler bewegen :) Java Basics - Anfänger-Themen 6
J Vier gewinnt in Java,Spieler Konstruktor Java Basics - Anfänger-Themen 8
M PNG als Spieler im Fenster anzeigen Java Basics - Anfänger-Themen 4
C Erste Schritte Spieler an anderen Frame weitergeben Java Basics - Anfänger-Themen 23
L Einfaches Kartenspiel (Spieler Klasse) Java Basics - Anfänger-Themen 14
I Spieler Name eintragen und Random Gewinner Java Basics - Anfänger-Themen 4
TheKing Spieler Position mit Array vergleichen Java Basics - Anfänger-Themen 2
T Blobby Volley Spieler schreiben Java Basics - Anfänger-Themen 4
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
D Wie Objekte im JFrame frei bewegen lassen? Java Basics - Anfänger-Themen 3
D wie kann man in Pong mit eclipse den schläger bewegen Java Basics - Anfänger-Themen 1
IamArctic Quaxli Tutorial, Rotorblätter bewegen sich nicht mehr Java Basics - Anfänger-Themen 4
T Auf einem Schachbrett bewegen programmieren Java Basics - Anfänger-Themen 2
S ProgrammierHilfe dringend gesucht ( Icon bewegen) Java Basics - Anfänger-Themen 9
J Button über Pfeiltasten bewegen Java Basics - Anfänger-Themen 8
I in Richtung bewegen Java Basics - Anfänger-Themen 2
Franzi1001 ScrollBar lässt sich nicht bewegen Java Basics - Anfänger-Themen 4
N Bewegtes Objekt soll sich um eine Parallele bewegen Java Basics - Anfänger-Themen 0
CptK Interface Bilder über Bildschirm bewegen, bis der Abstand zum vorherigen zu groß wird Java Basics - Anfänger-Themen 13
Y Kreis auf einer Kreisbahn bewegen Java Basics - Anfänger-Themen 5
R JTree bewegen Java Basics - Anfänger-Themen 6
GRAZZ0R MouseListener - Rechteck Bewegen Java Basics - Anfänger-Themen 1
J Durch 2-Dimensionales Array "bewegen" will nicht so recht hinhauen Java Basics - Anfänger-Themen 2
N String auf JPanel bewegen Java Basics - Anfänger-Themen 6
G zwei Objekte bewegen - der eine bewegt sich nicht flüssig? Java Basics - Anfänger-Themen 10
F Objekt in Richtung eines anderen Objekts bewegen Java Basics - Anfänger-Themen 4
A Auto bewegen (mit SuM) Java Basics - Anfänger-Themen 27
K Bild mit Maus innerhalb eines Rahmens bewegen Java Basics - Anfänger-Themen 5
G Figuren bewegen-Aufgabe mit static Java Basics - Anfänger-Themen 9
D Kreis mit Pfeiltaste bewegen Java Basics - Anfänger-Themen 3
JAVAnnik Problem beim Objekt bewegen Java Basics - Anfänger-Themen 20
E JFrame Fenster bewegen Java Basics - Anfänger-Themen 8
G Shape bewegen Java Basics - Anfänger-Themen 4
F Bilder enfügen und Bewegen Java Basics - Anfänger-Themen 6
N OOP Objekte entlang Pfaden bewegen Java Basics - Anfänger-Themen 15
B Button bewegen Java Basics - Anfänger-Themen 8
H Grafik auf einem JPanel bewegen. Java Basics - Anfänger-Themen 7
L Balken mit Pfeiltasten bewegen Java Basics - Anfänger-Themen 3
P Fenster bewegen Java Basics - Anfänger-Themen 4
S Mehrere Bilder bewegen Java Basics - Anfänger-Themen 5
Spin Objekte bewegen lassen Java Basics - Anfänger-Themen 16
A grafik 2d Objekte mit der Maus bewegen Java Basics - Anfänger-Themen 4
N Objekte bewegen funktioniert nicht Java Basics - Anfänger-Themen 5
U Neuling: Hintergrund bewegen Java Basics - Anfänger-Themen 14
G Maus mit java bewegen Java Basics - Anfänger-Themen 6
W Jlabel bewegen Java Basics - Anfänger-Themen 8
B KeyListener (etwas bewegen) Java Basics - Anfänger-Themen 10
7 Benutzer kann Button bewegen Java Basics - Anfänger-Themen 4
H Bewegen einer Figur Java Basics - Anfänger-Themen 3
R Buttons können sich bewegen und JButtons nicht? Java Basics - Anfänger-Themen 5
K striche die sich auf dem hintergrundbild bewegen Java Basics - Anfänger-Themen 10
J Bewegen durch das Labyrinth Java Basics - Anfänger-Themen 7
A Kreis mit gedrückter Maustaste bewegen. Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben