Package game.actors

Source Code of game.actors.CoinActor

package game.actors;

import engine.classes.Colour;
import engine.geometry.Circle;
import engine.geometry.Polygon;
import engine.geometry.Vector;
import engine.hierarchy.DefaultActor;
import engine.interfaces.Clock;
import engine.interfaces.Keyboard;
import engine.interfaces.Mouse;
import engine.interfaces.RenderTarget;
import engine.interfaces.Mouse.Button;
import game.habits.DynamicHabit;
import game.habits.GravityHabit;
import game.habits.MetalHabit;

public class CoinActor extends DefaultActor {
    private static final Colour colour = new Colour(64, 128, 255);
    private DynamicHabit dynamic;
    private MetalHabit metal;
    private Vector startPosition;

    public CoinActor(Vector startPosition) {
        this.startPosition = startPosition;
    }

    @Override
    protected void onAdd() {
        dynamic = addHabit(new DynamicHabit(new Circle(startPosition, 8).toPolygon(16), 1));
        addHabit(new GravityHabit(dynamic));
        metal = addHabit(new MetalHabit(dynamic));
    }

    @Override
    protected void onBeforeMove(Keyboard keyboard, Mouse mouse, Clock clock) {
        if (mouse.isDown(Button.MB_LEFT)) {
            PlayerActor pa = getLayer().findActor(PlayerActor.class);
            Polygon p = pa.findHabit(DynamicHabit.class).getPolygon();
            metal.applyImpulse(p.getMid().subtract(dynamic.getPolygon().getMid()).divide(1000));
        }
    }

    @Override
    protected void onDraw(RenderTarget target) {
        target.fillPolygon(dynamic.getPolygon(), colour);
    }
}
TOP

Related Classes of game.actors.CoinActor

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.