Turtlegrafik für Smartphones und Tablets

Entwicklungsprojekt PHBern  
HomeOnline-Editor startenDruckenAndroid GamesJava-Online

Mehrere Turtles verwenden


In einem Playground können mehrere Turtles als Instanzen der Klasse Turtle erzeugt werden. Um eine Methode für mehrere Turtles zu verwenden, übergeben wir dieser Methode eine Turtlereferenz.

In unserem Beispiel zeichnen die Turtles joe und luka abwechslungsweise je eine Treppenstufe.

Source mit Online-Compiler bearbeiten

App installieren auf Smartphone oder Tablet

QR-Code

Sources downloaden (Tu13.zip)

// Tu13.java

package app.tu13;

import turtle.*;

public class Tu13 extends Playground
{
  Turtle joe = new Turtle(RED);
  Turtle luka = new Turtle(GREEN);

  public public void main()
  {
    joe.setPos(-120,-120);
    luka.setPos(-120,120);
    luka.rt(90);
    joe.setPenColor(RED);
    luka.setPenColor(GREEN);
    for (int = 0; i < 8; i++)
    {
      step(joe);    
      step(luka);   
    }
  }
  
  void step(Turtle t)
  {
    t.fd(30);
    t.rt(90);
    t.fd(30);
    t.lt(90);
  }
}
 

Erklärungen zum Programmcode:

Turtle joe = new Turtle(RED)

Erzeugt eine rote Turtle joe

void step(Turtle t)

Die Methode step() wird allgemein für eine beliebige Turtle t deklariert

step(joe)   
step(luka)   

Aufruf der Methode step() für der Turtle joe
Aufruf der Methode step() für der Turtle luka

 

Im nächsten Beispiel bauen die Turtles joe und luka je einen Turm, der aus roten bzw. grünen Quadraten besteht.

Source mit Online-Compiler bearbeiten

App installieren auf Smartphone oderTablet

QR-Code

Sources downloaden (Tu14.zip)

// Tu14.java

package app.tu14;

import turtle.*;

public class Tu14 extends Playground
{
  Turtle joe = new Turtle(RED);
  Turtle luka = new Turtle(GREEN);

  public void main()
  {
    joe.setPos(-80,-50);
    luka.setPos(50,-50);
    joe.setPenColor(RED);
    luka.setPenColor(GREEN);
    for (int = 0; i < 5; i++)
    {
      square(joe);      
      square(luka);   
    }
  }
  
  void square(Turtle t)
  {
    for (int = 0; i < 4; i++)
    {
      t.fd(30);
      t.rt(90);
    }
    t.fill(t.getX() + 2, t.getY() + 2);
    t.fd(33);
  }
}
 

Erklärungen zum Programmcode:

void square(Turtle)

Die Methode square hat Parameter Turtle t

square(joe) 

Die Turtle joe zeichnet ein rotes Quadrat

t.fill(t.getX() + 2, t.getY() + 2)

Wir möchten die Quadrate fortlaufend füllen. Dazu holen wir mit getX() und getY() die Koordinaten der Turtle nach dem Sie ein Quadrat fertig gezeichnet hat. Der Punkt (getX() + 2, getY() + 2) liegt innerhalb des Quadrats