Beispiel Raindops OOP

Raindrops OOP ist die objektorientierte Umsetzung eines kleines Spiels, bei dem Regentropfen mit einem Eimer gefangen werden müssen.
Das Beispiel zeigt die Umsetzung eines etwas komplexeren Spiels mittels des ShapesLayer.
Eine nicht-objektorientierte Variante, die den DrawingLayer nutzt, wird im Beispiel zm_raindrops zu finden sein.
This commit is contained in:
ngb
2022-01-06 09:35:15 +01:00
parent ac56393998
commit 9d78686470
7 changed files with 319 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
import schule.ngb.zm.Updatable;
import schule.ngb.zm.shapes.Picture;
public class Drop extends Picture implements Updatable {
public static final double SPEED_PIXELPERSECOND = 100.0;
public static final double SPEED_INCREASE = 1.2;
public static final int START_Y = 40;
private double speed = SPEED_PIXELPERSECOND;
private boolean active = false;
public Drop() {
super(0, 0, "raindrop.png");
hide();
}
public void increaseSpeed() {
this.speed *= SPEED_INCREASE;
}
public void activate() {
this.active = true;
}
public void reset() {
moveTo(random(Raindrops.GAME_BORDER, Raindrops.GAME_WIDTH - Raindrops.GAME_BORDER), START_Y);
show();
}
@Override
public boolean isActive() {
return active;
}
@Override
public void update( double delta ) {
y += speed * delta;
}
}