Package boids

Source Code of boids.Boids

package boids;

import static aspect.core.AspectLauncher.*;
import aspect.core.AspectRenderer;
import static aspect.core.AspectRenderer.*;
import aspect.entity.Entity;
import aspect.entity.behavior.Behavior;
import aspect.physics.RigidBody;
import aspect.physics.force.DynamicPointForce;
import aspect.physics.force.Force;
import aspect.physics.force.IntensityModel;
import static aspect.resources.Resources.*;
import aspect.world.ListWorld;
import java.util.LinkedList;
import static org.lwjgl.opengl.GL11.*;

public class Boids extends Behavior {

    public static final float BOID_COHESION = 1.5e5f;
    public static final float BOID_ALIGNMENT = 1e5f;
    public static final float BOID_SEPARATION = 1e7f;

    public static final int nBoids = 20;

    public ListWorld boids;

    public static void main(String[] args) {
        createAnimation(800, 600, false, -1, new Boids());
        printFPS(1000);
    }

    @Override
    public void onAdd() {
        boids = new ListWorld();
       
       
        LinkedList<Force> forces = new LinkedList<>();

        for (int i = 0; i < nBoids; i++) {
            Boid b = new Boid();
            boids.add(b);
            forces.add(b.alignment);
            forces.add(b.cohesion);
            forces.add(b.separation);
        }

        for (Entity boid : boids) {
            RigidBody rb = boid.rigidBody();
            for (Force f : forces) {
                rb.addForce(f);
            }
        }
    }
   

    @Override
    public void update() {
        boids.update();
    }

    @Override
    public void render() {
        AspectRenderer.setRenderMode(RenderMode.ORTHOGONAL);
        boids.draw();
    }
}
TOP

Related Classes of boids.Boids

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.