mirror of
https://github.com/jneug/zeichenmaschine.git
synced 2026-10-12 01:45:18 +02:00
Viele weitere Beispielprojekt für verschiedene Anwendungen
This commit is contained in:
72
examples/zm_aquarium/Fish.java
Normal file
72
examples/zm_aquarium/Fish.java
Normal file
@@ -0,0 +1,72 @@
|
||||
import schule.ngb.zm.*;
|
||||
import schule.ngb.zm.shapes.Picture;
|
||||
import schule.ngb.zm.shapes.Shape;
|
||||
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.geom.AffineTransform;
|
||||
|
||||
public class Fish extends Shape implements Updatable {
|
||||
|
||||
private int speed;
|
||||
|
||||
private Picture img;
|
||||
|
||||
public Fish() {
|
||||
randomize();
|
||||
}
|
||||
|
||||
public void randomize() {
|
||||
int i = random(1, 7);
|
||||
speed = random(-2, 2);
|
||||
img = new Picture("fish" + i);
|
||||
img.setAnchor(NORTHWEST);
|
||||
img.scale(random(0.8, 1.0));
|
||||
img.tint(randomNiceColor());
|
||||
//img.scale(0.5);
|
||||
if( speed < 0 ) {
|
||||
img.flip(LEFT);
|
||||
}
|
||||
img.moveTo(random(10, width-img.getWidth()), random(30, height-120));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isActive() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update( double delta ) {
|
||||
img.move(speed, .5 * sin(tick / (speed * 10.0)));
|
||||
|
||||
if( img.getX() <= 0 || img.getX()+img.getWidth() >= 800 ) {
|
||||
speed *= -1;
|
||||
img.flip(LEFT);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void draw( Graphics2D graphics, AffineTransform transform ) {
|
||||
img.draw(graphics, transform);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getWidth() {
|
||||
return img.getWidth();
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getHeight() {
|
||||
return img.getHeight();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Shape copy() {
|
||||
return img.copy();
|
||||
}
|
||||
|
||||
@Override
|
||||
public java.awt.Shape getShape() {
|
||||
return img.getShape();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user