creature creature exmaple
This commit is contained in:
@@ -4,6 +4,7 @@ import mathematik.Vector3f;
|
||||
class Creature extends BehaviorParticle {
|
||||
|
||||
float _scale;
|
||||
float _rotation;
|
||||
|
||||
public Creature(int x, int y, int r) {
|
||||
super();
|
||||
@@ -11,26 +12,62 @@ class Creature extends BehaviorParticle {
|
||||
maximumInnerForce(100);
|
||||
radius(r);
|
||||
_scale = 1.0;
|
||||
_rotation = 0;
|
||||
}
|
||||
|
||||
///////////////////////////////////
|
||||
// display method
|
||||
// + applies transformations
|
||||
// + draws shape of the subclass
|
||||
|
||||
public void display() {
|
||||
pushMatrix();
|
||||
translate(position().x, position().y);
|
||||
rotate(getRotation());
|
||||
if(_rotation != 0)
|
||||
rotate(_rotation);
|
||||
else
|
||||
rotate(getRotation());
|
||||
scale(_scale);
|
||||
draw_shape();
|
||||
popMatrix();
|
||||
}
|
||||
|
||||
/////////////////////////////////
|
||||
// (absolute) transforms
|
||||
|
||||
public void rotate_to(float r) {
|
||||
_rotation = r;
|
||||
}
|
||||
|
||||
public void scale_to(float s) {
|
||||
_scale = s;
|
||||
}
|
||||
|
||||
///////////////////////////////////
|
||||
// (incremental) transforms
|
||||
|
||||
public void rotate_increment(float r) {
|
||||
_rotation += r;
|
||||
}
|
||||
|
||||
public void scale_increment(float s) {
|
||||
_scale += s;
|
||||
}
|
||||
|
||||
private float getRotation() {
|
||||
if(velocity().isNaN() || velocity().magnitude() == 0) return 0;
|
||||
Vector3f v = new Vector3f(-1, 0, 0);
|
||||
return velocity().angle(v);
|
||||
}
|
||||
|
||||
///////////////////////////////////
|
||||
// ** METHODS FOR SUBCLASSES **
|
||||
|
||||
// draws a (subclass) shape (in own coordinates)
|
||||
public void draw_shape() {}
|
||||
|
||||
// evaluates if mx and my are inside the (subclass) shape
|
||||
public boolean inside(int mx, int my){return false;}
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user