R
roontafloor
Gast
Also ich habe folgendes Problem:
ich bin ein ziemlicher Anfänger was Java betrifft und bei diesem kleinen simplen Spiel stosse ich auf Probleme mit dem KeyListener.
Es ist eine Art MarioKart, die Oberfläche und alles zeigt es mir alles schön und gut an, doch die Sache mit dem KeyListener geht nicht, wenn ich die bestimmte Taste drücke sollte (vorerst ein Fahrer(mario)) um eine gewisse x-achsen Zahl (die ja bestimmt werden kann) nach rechts vorrücken, doch bei meinem jetztigen stand komme ich nicht mehr weiter.
Hier der Code: Hoffe ihr könnt mir tipps geben:
ich bin ein ziemlicher Anfänger was Java betrifft und bei diesem kleinen simplen Spiel stosse ich auf Probleme mit dem KeyListener.
Es ist eine Art MarioKart, die Oberfläche und alles zeigt es mir alles schön und gut an, doch die Sache mit dem KeyListener geht nicht, wenn ich die bestimmte Taste drücke sollte (vorerst ein Fahrer(mario)) um eine gewisse x-achsen Zahl (die ja bestimmt werden kann) nach rechts vorrücken, doch bei meinem jetztigen stand komme ich nicht mehr weiter.
Hier der Code: Hoffe ihr könnt mir tipps geben:
Code:
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class MarioKart extends JFrame implements KeyListener, ActionListener {
int a = 32;
JPanel buttonPanel = new JPanel();
JPanel racePanel = new JPanel();
//private JButton reset = new JButton("Restart Race");
private JButton quit = new JButton("Exit Game");
//ImageIcon mario = new ImageIcon(getIconImage(), "Mario.gif");
JLabel mario = new JLabel(new ImageIcon("Mario.gif"));
JLabel luigi = new JLabel(new ImageIcon("Luigi.gif"));
JLabel peach = new JLabel(new ImageIcon("Peach.gif"));
JLabel yoshi = new JLabel(new ImageIcon("Yoshi.gif"));
JLabel dk = new JLabel(new ImageIcon("DK.gif"));
JLabel bowser = new JLabel(new ImageIcon("Bowser.gif"));
JLabel koppa = new JLabel(new ImageIcon("Koppa.gif"));
JLabel toad = new JLabel(new ImageIcon("Toad.gif"));
private Container contentPane = new Container();
public MarioKart() {
setSize(600, 400);
setTitle("Mario Grand-Prix");
setDefaultCloseOperation(EXIT_ON_CLOSE);
// dem Container wird das Layout und die Panels übergeben
contentPane = this.getContentPane();
contentPane.setLayout(new BorderLayout());
contentPane.add(BorderLayout.NORTH, buttonPanel);
contentPane.add(BorderLayout.CENTER, racePanel);
// dem buttonPanel wird ein Layout übergeben und der Knopf "reset"
buttonPanel.setLayout(new FlowLayout());
//buttonPanel.add(reset);
buttonPanel.add(quit);
quit.addActionListener(this);
// dem racePanel wird Layout(null) übergeben und alle JLabels mit den Bildern der Fahrer
racePanel.setLayout(null);
//racePanel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
racePanel.add(mario);
racePanel.add(luigi);
racePanel.add(peach);
racePanel.add(yoshi);
racePanel.add(dk);
racePanel.add(bowser);
racePanel.add(koppa);
racePanel.add(toad);
// den JLables(Bilder) muss jetzt Standort (x-achse und y-achse) und die effektive Grösse des JLabels (Hier habe ich die genau
// die Grösse der Bilder genommen (32px, 32px)) übergeben werden
mario.setBounds(10,50, a, a);
luigi.setBounds(10,82, a, a);
peach.setBounds(10,114, a, a);
yoshi.setBounds(10,146, a, a);
dk.setBounds(10,178, 32, a);
bowser.setBounds(10,210, a, a);
koppa.setBounds(10,242, a, a);
toad.setBounds(10,274, a, a);
addKeyListener(this);
show();
}
public static void main(String args[]) {
MarioKart mk = new MarioKart();
}
public void movemario(int b1){
if (b1 == 1){
mario.getLocation().getX();
mario.setLocation((10+50), 10);
}
}
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
System.out.println("hallo");
movemario(1);
//mx = mx+=100;
/*mario.setBounds(200,50,a,a);
mario.setLocation(200,50);
mario.setVisible(true);*/
}
}
public void keyReleased(KeyEvent event) {
System.out.println("hallo");
/*if (event.getKeyCode() == KeyEvent.VK_F10) {
//mario.setBounds(200,50,a,a);
mario.setLocation(200,50);
//mario.setVisible(false);
}*/
}
public void keyTyped(KeyEvent arg0) {
System.out.println("hallo");
/*if (arg0.getKeyCode() == KeyEvent.VK_F10) {
mario.setBounds(200,50,a,a);
mario.setLocation(200,50);
mario.setVisible(true);
}*/
}
public void actionPerformed(ActionEvent arg0) {
if (arg0.getSource() == quit) {
System.exit(0);
}
}
}