41 lines
939 B
JavaScript
41 lines
939 B
JavaScript
|
import GeometryPoint from "./geometry/GeometryPoint.js";
|
||
|
|
||
|
export default class Movable
|
||
|
{
|
||
|
constructor(defaultAnimation, speed = 1)
|
||
|
{
|
||
|
this.currentAnimation = 'DEFAULT';
|
||
|
this.animations = {
|
||
|
DEFAULT: defaultAnimation,
|
||
|
};
|
||
|
this.position = new GeometryPoint();
|
||
|
this.speed = speed;
|
||
|
}
|
||
|
|
||
|
playAnimation(animation, timestamp)
|
||
|
{
|
||
|
this.currentAnimation = animation;
|
||
|
this.animations[animation].play(timestamp);
|
||
|
}
|
||
|
|
||
|
addAnimation(name, animation)
|
||
|
{
|
||
|
this.animations[name] = animation;
|
||
|
}
|
||
|
|
||
|
moveLeft(delta = 1)
|
||
|
{
|
||
|
this.position.x -= this.speed * delta;
|
||
|
}
|
||
|
|
||
|
moveRight(delta = 1)
|
||
|
{
|
||
|
this.position.x += this.speed * delta;
|
||
|
}
|
||
|
|
||
|
draw(context)
|
||
|
{
|
||
|
this.animations[this.currentAnimation].setFootPosition(this.position.x, this.position.y);
|
||
|
this.animations[this.currentAnimation].draw(context);
|
||
|
}
|
||
|
}
|