GameGrid: Spielprogrammierung mit Java

Entwicklungsprojekt PHBern  
HomeStart Online-EditorDruckenJava-Online

Applets

Applets sind Java-Programme, die in einem Internet-Browser ausgeführt werden. Mit geringen Anpassungen können GameGrid-Applikationen, die keinen Navigationsbalken benötigen, als Applets präsentiert werden.

Beispiel 1: Eine einfache GameGrid-Applikation (JGameEx2.java) wird zu einem Applet angepasst.

Die GameGrid-Applikationen sind in der Regel mit extends GameGrid von der Klasse GameGrid abgeleitet. Applets müssen mit extends JApplet von der Klasse JApplet abgeleitet sein. Da Java nur eine einfache Vererbung unterstützt, wird das Spielfenster mit
GameGrid gg = new GameGrid() als Instanz der Klasse GameGrid erzeugt.

Jedes JGameGrid-Applet muss die Methoden init(), start() und stop() enthalten, welche die entsprechende Methoden in der Superklasse JApplet überschreiben. Die Methode init() wird zur Initialisierung verwendet. Da kein Navigationsbalken zur Verfügung steht, muss der Simulationszyklus mit der Methode doRun() softwaremässig in Gang gesetzt werden. Wir verwenden dazu die Methode start(), welche aufgerufen wird, wenn die Webseite geöffnet wird. Die Methode stop(), die aufgerugen wird wenn der Benutzer die Webseite verlässt, sorgt dafür, dass der interne Thread vom GameGrid beendet und damit alle Ressourcen frei gegeben werden.

Im Unterschied zu den Java-Applikationen enthalten Applets keine Methode main(). Sie werden durch den Browser gestartet. Dazu wird ein HTML-Tag verwendet (siehe unten).

Beispiel zeigen

Beispiel im Online-Editor bearbeiten

 

// Ex30.java

import ch.aplu.jgamegrid.*;
import javax.swing.*;

public class JGameEx30 extends JApplet
{
  private GameGrid gg;

  public void init()
  {
    gg = new GameGrid(10, 10, 60, "sprites/reef.gif");
    getContentPane().add(gg);
    FishA nemo = new FishA();
    gg.addActor(nemo, new Location(2, 4));
  }

  public void start()
  {
    gg.doRun();
  }

  public void stop()
  {
    gg.stopGameThread();
  }

  public static void main(String[] args){}
}

// ------------- class FishA --------------------
class FishA extends Actor
{
  public FishA()
  {
    super("sprites/nemo.gif");
  }

  public void act()
  {
    move();
    if (isNearBorder())
    {
      turn(180);
      setHorzMirror(!isHorzMirror());
    }
  }
}

Erklärungen zum Programmcode:
getContentPane().add(gg) Fügt GameGrid zur ContentPane des Applets
stopGameThread() Stoppt den GameThread, wenn die Webseite geschlossen wird
public static void main(String[] args){} Die Methode main() braucht unser Online-Compile, um die Hauptklasse zu finden. Bei der bearbeitung in einer lokalen Entwicklungsumgebung kann diese Zeile weggelassen werden

 

Um ein Applet im Internet zu publizieren, müssen zwei Dateien auf den Webserver hochgeladen werden: eine jar-Datei, die den compilierten Programmcode und alle benötigten Ressourcen (Sprite-Bilder, wav-Dateien, JGameGrid-Library) beinhaltet und eine HTML-Datei, die das Applet aufruft.

Unser Online-Editor macht das Erstellen von Applets einfach. Nach der Compilierung kann eine jar-Datei (JGameEx30.jar) lokal gespeichert werden. In dieser Datei werden automatisch alle compilierten Klassen, die Klassenbibliothek JGameGrid, Sprites und Sound-Dateien verpackt. Werden eigene Sprites verwendet, müssen diese im Unterverzeichnis gamegrid/sprites des Homeverzeichnisses gespeichert werden (siehe Benutzerinformationen). Dann werden auch diese mitverpackt.

 

Im gleichen Verzeichnis, in welchem Sie die jar-Datei gespeichert haben, erstellen Sie mit einen HTML- oder Texteditor eine Textdatei mit der Erweiterung html und fügen Sie den folgenden HTML-Code hinzu und kopieren Sie die beiden Dateien auf den Webserver.
 

<html>
  <body>
  <div align="center">
  <h1>Ex12 - JGameGrid Applet</h1>
  <applet code="JGameEx30.class" archive="JGameEx30.jar" width="601" height="601">
  </applet>
  </div>
</body>
</html>