Game-Apps für Smartphones und Tablets

Bern University oh Teacher Education  
HomeOnline-Editor startenDruckenAndroid-TurtlegrafikJava-Online

Actors

Alle Figuren und Gegenstände , die im Spielfenster erscheinen, werden als Objekte aufgefasst und mit Klassen, die von der Klasse Actor abgeleitet sind, beschrieben. Dadurch lässt sich bereits bei den ersten Programmbeispielen das OOP-Konzept vorbildlich realisieren. Jedem Actor ist ein Sprite-Bild zugeordnet. Der Dateiname des Bildes wird im Konstruktor des Actors angegeben. (Einem Actor können auch mehrere Bilder zugeordnet werden).  
Das Grundkonzept besteht darin, den Actors ein dynamisches "Eigenleben" zu geben. Sobald die Schaltlfläche Run gedrückt wird, startet ein Simulationszyklus, in dem die Methode act() periodisch aufgerufen wird. Die Simulationsperiode kann mit dem Lautstärkeregler vom Smartphone verändert werden. In jedem Simulationszyklus wird auch der Hintergrund neu aufgebaut. Dadurch lassen sich Animationen auf einfache Art realisieren (dieses elegante Konzept wurde von Greenfoot übernommen).

Beispiel 1: Der Actor nemo bewegt sich horizontal von Zelle zur Zelle. Wenn er sich in einer Randzelle befindet, dreht er um und schwimmt zurück.

Beispiel im Online-Editor bearbeiten

App installieren auf Smartphone oder Tablet

QR-Code

Sources downloaden (AndroidEx1.zip)

// AndroidEx1.java

package app.ex1;

import ch.aplu.android.*;

public class AndroidEx1 extends GameGrid
{
  public AndroidEx1()
  {
    super(8, 8, 0, RED, true);
  }

  public void main()
  {
    Fish nemo = new Fish();
    addActor(nemo, new Location(1, 1));
    doRun();
  }
}

class Fish extends Actor
{
  public Fish()
  {
    super("nemo");
  }

  public void act()
  {
    move();
  }
}

 

 

Erklärungen zum Programmcode:

class Fish extends Actor Die Klasse Fish wird von der Klasse Actor abgeleitet und erbt dadurch alle (nicht privaten Methoden) dieser Klasse
public Fish()
{
    super("nemo");
}
Im Konstruktor der Klasse Fish wird der Dateiname des zugehöriges Sprite-Bildes angegeben
act() In der Methode act() wird deklariert, was der Actor tun soll
move() Verschiebt den Actor in die benachbarte Zelle. Bei der Erzeugung des Actors erhält dieser die Standardrichtung 0° (gegen Osten)
Fish nemo = new Fish() Erzeugt ein Objekt nemo der Klasse Fish. Da Fish von der Klasse Actor abgeleitet ist, ist nemo ein Actor
addActor(nemo,  new Location (1 ,  1)) Der Actor wird zum GameGrid hinzugefügt und erscheint an der angegebenen Position. In einem 10x10 Gitter kann x und y die Werte 0 bis 9 annehmen. Das Actor-Bild wird zentriert in den Zellen positioniert und kann auch über die Zellengrenzen herausragen
doRun() Die Methode doRun() starten den Simulationszyklus

 

Die meisten Smartphones verfügen über die Bedienungstasten HOME, MENU, BACK und den Lautstärkeregler.

Die Smartphonetasten sind wie folgt belegt:

HOME: Ende des Programms
MENU: Run, falls das Programm noch nicht gestartet ist oder nach Reset;
        falls nach einer Pause ein langer Klick erfolgt
Pause, falls das Programm bereits läuft
Step, falls nach einer Pause ein kurzer Klick erfolgt
BACK: Reset