Hallo,
ich hab ein kleines Spiel angefangen, welches sich in etwa an IcyTower orientiert. Dazu hab ich eine MainKlasse, die JPanel erweitert.Der Aufbau ist ähnlich zu dem Tutorial hier im Forum, wo man den Heli steuern kann.D.h. die Klasse Sprite ist vorhanden, und das zeichnen der Objekte funktioniert im Prinzip genauso.
Nun hab ich eine weitere Klasse SideBar erstellt, die einen Seitenbereich erstellen soll, in dem dann bspw. die Score etc gezeichnet werden soll.
nun das verrückte:
sobald ich dem JFrame das Panel mit .add("East",sidebar) hinzufüge, funktionieren die Steuertasten im Spiel nicht mehr. Ich kann keine Aktionen ausführen.Alles wird korrekt angezeigt und Fehler gibt es auch nicht...
Meine Vermutung war, dass der KeyListener irgendwie überdeckt wird(?!?) so dass die Keyactions an die Sidebar weitergeleitet werden, anstatt an das Gamepanel.
Kann mir da jemand helfen?
wenn es nötig ist poste ich noch den Konstruktor der MainKlasse, aber der ist ja eh meistens annähernd gleich bei der Art von Projekten
ich hab ein kleines Spiel angefangen, welches sich in etwa an IcyTower orientiert. Dazu hab ich eine MainKlasse, die JPanel erweitert.Der Aufbau ist ähnlich zu dem Tutorial hier im Forum, wo man den Heli steuern kann.D.h. die Klasse Sprite ist vorhanden, und das zeichnen der Objekte funktioniert im Prinzip genauso.
Nun hab ich eine weitere Klasse SideBar erstellt, die einen Seitenbereich erstellen soll, in dem dann bspw. die Score etc gezeichnet werden soll.
Java:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JPanel;
public class SideBar extends JPanel {
/**
*
*/
private static final long serialVersionUID = 1L;
private BufferedImage clock;
private BufferedImage sidebarbackground;
public SideBar(){
JPanel panel = new JPanel();
panel.setVisible(true);
panel.add(this);
try {
clock=ImageIO.read(new File("Sources/clock.png"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
sidebarbackground=ImageIO.read(new File("Sources/sidebarbackground.jpg"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void paintComponent(Graphics g){
g.drawImage(sidebarbackground, 0, 0,this.getWidth(),this.getHeight(), null);
g.drawImage(clock, 30, 80,180,180, null);
}
}
nun das verrückte:
sobald ich dem JFrame das Panel mit .add("East",sidebar) hinzufüge, funktionieren die Steuertasten im Spiel nicht mehr. Ich kann keine Aktionen ausführen.Alles wird korrekt angezeigt und Fehler gibt es auch nicht...
Meine Vermutung war, dass der KeyListener irgendwie überdeckt wird(?!?) so dass die Keyactions an die Sidebar weitergeleitet werden, anstatt an das Gamepanel.
Kann mir da jemand helfen?
wenn es nötig ist poste ich noch den Konstruktor der MainKlasse, aber der ist ja eh meistens annähernd gleich bei der Art von Projekten