Hallo,
ich hab noch nicht viel Ahnung von Applets. Bin derzeit dabei eine Art Hauptmenü zu basteln. Dieses besteht aus 3 versch. Hintergrundbildern, je nachdem welcher Menüpunkt ausgewählt wurde. Irgendwie funktioniert da aber etwas nicht *g*
Als Test hab ich mal die Variable Curosr, in der gespeichert ist welcher Menüpunkt ausgewählt ist (0 bis 2) ausgegeben, das scheint zu funktionieren, aber er ändert das Hintergrundbild nicht...
Weiß jemand von euch wo mein Fehler liegen könnte?
ich hab noch nicht viel Ahnung von Applets. Bin derzeit dabei eine Art Hauptmenü zu basteln. Dieses besteht aus 3 versch. Hintergrundbildern, je nachdem welcher Menüpunkt ausgewählt wurde. Irgendwie funktioniert da aber etwas nicht *g*
Als Test hab ich mal die Variable Curosr, in der gespeichert ist welcher Menüpunkt ausgewählt ist (0 bis 2) ausgegeben, das scheint zu funktionieren, aber er ändert das Hintergrundbild nicht...
Code:
import java.applet.*;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.net.*;
public class Game extends Applet implements Runnable, KeyListener {
private Image dbImage;
private Graphics dbg;
Image backImage;
private int cursor;
// Nun sollten folgende Methoden implementiert werden
// init - Methode wird beim Laden des Applets aufgerufen
public void init() {
addKeyListener(this);
cursor = 0;
backImage = getImage (getCodeBase (), "Graphics/BG0.jpg");
Dimension d = new Dimension(450, 600);
this.setSize(d);
}
// start - Methode wird nach dem Laden des Applets aufgerufen
public void start() {
// Schaffen eines neuen Threads, in dem das Spiel läuft
Thread th = new Thread (this);
// Starten des Threads
th.start ();
}
// Stop - Methode wird beim Verlassen der Seite mit dem Applet aufgerufen
public void stop() { }
// Destroy - Methode wird beim endgültigen Verlassen der Internetseite aufgerufen
public void destroy() { }
/** Paint - Methode dient dem Zeichnen von Elementen im Applet und wird z.B. bei Bewegung des Browserfensters und durch den Aufruf repaint() aufgerufen */
public void paint(Graphics g) {
switch (cursor) {
case 0:
backImage = getImage(getCodeBase(), "Graphics/BG0.jpg");
break;
case 1:
backImage = getImage(getCodeBase(), "Graphics/BG1.jpg");
break;
case 2:
backImage = getImage(getCodeBase(), "Graphics/BG2.jpg");
break;
default:
break;
}
g.drawImage(backImage, 0, 0, this);
}
@Override
public void run() {
// Erniedrigen der ThreadPriority um zeichnen zu erleichtern
Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
repaint();
try
{
// Stoppen des Threads für in Klammern angegebene Millisekunden
Thread.sleep (20);
}
catch (InterruptedException ex)
{
// do nothing
}
// Zurücksetzen der ThreadPriority auf Maximalwert
Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
}
/** Update - Methode, Realisierung der Doppelpufferung zur Reduzierung des Bildschirmflackerns */
public void update (Graphics g)
{
// Initialisierung des DoubleBuffers
if (dbImage == null)
{
dbImage = createImage (this.getSize().width, this.getSize().height);
dbg = dbImage.getGraphics ();
}
// Bildschirm im Hintergrund löschen
dbg.setColor (getBackground ());
dbg.fillRect (0, 0, this.getSize().width, this.getSize().height);
// Auf gelöschten Hintergrund Vordergrund zeichnen
dbg.setColor (getForeground());
paint (dbg);
// Nun fertig gezeichnetes Bild Offscreen auf dem richtigen Bildschirm anzeigen
g.drawImage (dbImage, 0, 0, this);
}
@Override
public void keyPressed(KeyEvent e) {
switch (e.getKeyCode()) {
case KeyEvent.VK_UP:
if (cursor == 0){
cursor = 2;
System.out.println(cursor);
break;
}
if (cursor == 1){
cursor = 0;
System.out.println(cursor);
break;
}
if (cursor == 2){
cursor = 1;
System.out.println(cursor);
break;
}
break;
case KeyEvent.VK_DOWN:
if (cursor == 0){
cursor = 1;
System.out.println(cursor);
break;
}
if (cursor == 1){
cursor = 2;
System.out.println(cursor);
break;
}
if (cursor == 2){
cursor = 0;
System.out.println(cursor);
break;
}
break;
default:
break;
}
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent e) {
}
}
Weiß jemand von euch wo mein Fehler liegen könnte?