carookee - group communication for you
Home / JavaForum / Beginner
Infos   |   Features   |   Gold-Edition   |   Kundenservice   
java
  Übersicht
  Forum
Beginner
Java allgemein
JDBC
JNI
Networking
Online-Ressourcen
Swing + AWT
XML
Meckerecke
  Mitglieder
LOGIN





· Passwort vergessen
· Kostenlos anmelden
  Information
  Demo
  Features
  Im Vergleich
  Anmeldung
SUCHE
Beiträge, Foren oder Verfasser finden:
  Kundenservice
  Impressum
  Datenschutz
  AGB
Status
5.398 User online
0 User eingeloggt
 

Beiträge
   Antworten     Neuer Beitrag    

Beitrag 66 von 2963 (2%) |<   <   >   >|

Autor Benny
Datum 05.06.03, 15:57
Betreff Applet und Key abfragen


Hallo allerseitz, ich bin noch recht am Anfang mit Java. Hab zwar schon das eine oder andere kleine gemacht. Aber meist nur einseitige Dinge.

Ich wollte nun mal nen kleines Game schreiben, allerdings hab ich bei der Key Abfrage ein Problem. Die Keys werden korrekt abgefragt, aber sobald das spiel läuft, bewirkt ein betätigen eines Keys das ich 2 Signale anstatt eines erhalte.

Nachfolgend hab ich mal den Code der Hauptklasse beigefügt. Ich hoffe kennt die Lösung für des Rätels Lösung.
ich will doch nur ein Signal erhalten...

Greetz Benny


import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.io.*;

/**
* Das Spiel ist auf eine Größe von 400 * 600 px ausgelegt. Bitte beim einbinden
* in eine HTML Datei beachten
*/


public class Hanoi extends Applet
implements Runnable, KeyListener {
    
    // Spiel Variablen
    boolean bPlay = false; // gibt an ob das Spiel gestartet wurde oder nicht
    
    // Instanz auf Thread legen
    Thread thread;
    
    // Instanz auf Cursor und cursor erstellen
    Cursor cursor = new Cursor();
    
    // Schriftart festlegen
    Font font = new Font("Helvetica",Font.BOLD,24);
    
    // Grafik instanz für cursor
    Graphics gc;
    
    public void init() {
        // Applet Hintergrundsfarbe
        setBackground(Color.black);
        addKeyListener(this);
        setFont(font);
    }
    
    public void start() {
        if (thread == null) {
            thread = new Thread(this);
            thread.start();
        }
        requestFocus();
    }
    
    public void stop() {
        thread.stop();
    }
    
    public void destroy() {
        
    }
    
    public void run() {
        
        // endlosschleife...
        while(true) {
            
            try {
                Thread.sleep(20);
                } catch (InterruptedException e) {
                System.out.println(e);
            }
            repaint();
        }
    }
    
    public void paint(Graphics g) {
        if (bPlay == true) {
            // Farbe für die Pfähle setzen
            g.setColor(Color.blue);
            // erstelle fünf Pfähle auf denen die Hanoi Elemente platziert werden können
            g.fillRect(75,200,40,200); // erster Pfahl
            g.fillRect(175,200,40,200); // zweiter Pfahl
            g.fillRect(275,200,40,200); // dritter Pfahl
            g.fillRect(375,200,40,200); // vierter Pfahl
            g.fillRect(475,200,40,200); // fünfter Pfahl
            // cursor zeichnen
            cursor.drawCursor(g);
        }
        else if (bPlay == false) {
            // Startbildschirm anzeigen wenn das Spiel nicht begonnen hat
            g.setColor(Color.red);
            g.drawString("Press Enter to start the game",100,50);
        }
    }
    
    public void update(Graphics g) {
        
    }
    
    /* Ereignisbehandlung - Interface: KeyListener*/
    public void keyPressed(KeyEvent event) {
        if (event.getKeyCode() == event.VK_ENTER && !bPlay) {
            bPlay = true;
            init();
            System.out.println("Das Spiel wurde gestartet");
        }
        else if (event.getKeyCode() == event.VK_LEFT && bPlay)
        System.out.println("Links betaetigt");
        else if (event.getKeyCode() == event.VK_RIGHT && bPlay)
        System.out.println("Rechts betaetigt");
    }
    
    public void keyReleased(KeyEvent event) {
        // hat für uns keinen nutzen
    }
    
    public void keyTyped(KeyEvent event) {
        // hat für uns keinen nutzen
    }
}



Diskussionsverlauf:
Applet und Key abfragen
    Re: Applet und Key abfragen

 Auf diesen Beitrag antworten
 Neuen Beitrag verfassen


|<   <   >   >|

                                                                                                                                                                                                                           

Impressum  · Datenschutz  · AGB  · Infos  · Presse
Ein modernes Forum: teamturn.com