Removed implementation classes
Leaves only the framework in the compiled clause. Find the removed files in ../examples/misc/
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
package nz.ac.massey.javaecs;
|
||||
|
||||
import java.util.BitSet;
|
||||
|
||||
/**
|
||||
* Hello world!
|
||||
*/
|
||||
public final class App {
|
||||
private App() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Says hello to the world.
|
||||
* @param args The arguments of the program.
|
||||
* @throws InterruptedException
|
||||
*/
|
||||
public static void main(String[] args) throws InterruptedException {
|
||||
ECS gameEngine = new ECS();
|
||||
System.out.println("Hello World!");
|
||||
gameEngine.registerComponent(Vec2D.class);
|
||||
gameEngine.registerComponent(RidgidBody.class);
|
||||
gameEngine.registerComponent(Gravity.class);
|
||||
|
||||
PhysicsSystem physicsSystem = new PhysicsSystem(gameEngine);
|
||||
gameEngine.registerSystem(PhysicsSystem.class, physicsSystem);
|
||||
{
|
||||
BitSet signature = new BitSet();
|
||||
signature.set(gameEngine.getComponentIndex(Gravity.class));
|
||||
signature.set(gameEngine.getComponentIndex(Vec2D.class));
|
||||
signature.set(gameEngine.getComponentIndex(RidgidBody.class));
|
||||
gameEngine.setSystemSignature(PhysicsSystem.class, signature);
|
||||
}
|
||||
|
||||
physicsSystem.init();
|
||||
|
||||
LogVec2DSystem logVec2DSystem = new LogVec2DSystem(gameEngine);
|
||||
gameEngine.registerSystem(LogVec2DSystem.class, logVec2DSystem);
|
||||
{
|
||||
BitSet signature = new BitSet();
|
||||
signature.set(gameEngine.getComponentIndex(Gravity.class));
|
||||
signature.set(gameEngine.getComponentIndex(Vec2D.class));
|
||||
signature.set(gameEngine.getComponentIndex(RidgidBody.class));
|
||||
gameEngine.setSystemSignature(LogVec2DSystem.class, signature);
|
||||
}
|
||||
|
||||
logVec2DSystem.init();
|
||||
|
||||
FrameRateSystem frameRateSystem = new FrameRateSystem();
|
||||
gameEngine.registerSystem(FrameRateSystem.class, frameRateSystem);
|
||||
|
||||
// Create components:
|
||||
|
||||
int entity = gameEngine.createEntity();
|
||||
|
||||
gameEngine.addComponent(entity, Gravity.class, new Gravity(0.0, -9.80665, -1.0, 100.0));
|
||||
gameEngine.addComponent(entity, Vec2D.class, new Vec2D(1.5, 0.0, 1));
|
||||
gameEngine.addComponent(entity, RidgidBody.class, new RidgidBody());
|
||||
|
||||
|
||||
|
||||
double dt = 0.0;
|
||||
|
||||
double frameRate = 1.0 / 20; // 1 second divided by target number of frames
|
||||
double idleTime = 0.0; // the amount of time spent sleeping
|
||||
|
||||
boolean quit = false;
|
||||
long loopStart = System.currentTimeMillis();
|
||||
long startTime = System.nanoTime();
|
||||
// One potential way to do this
|
||||
while (!quit){
|
||||
// Get the time between frames for accurate time-based calculations (i.e. physics systems etc)
|
||||
frameRateSystem.update(dt, idleTime);
|
||||
physicsSystem.update(dt);
|
||||
logVec2DSystem.update(dt);
|
||||
dt = (System.nanoTime() - startTime) / 1e9; // convert nanoseconds to seconds
|
||||
startTime = System.nanoTime();
|
||||
// Limit frame rate (approximately) to minimum of 16 ms
|
||||
if (dt < frameRate){
|
||||
idleTime = frameRate-dt;
|
||||
Thread.sleep((int)((frameRate-dt)*1000));
|
||||
dt = (System.nanoTime() - startTime) / 1e9;
|
||||
startTime = System.nanoTime();
|
||||
}
|
||||
if (System.currentTimeMillis() - loopStart >= 1000){
|
||||
loopStart = System.currentTimeMillis();
|
||||
System.out.println("Second Elapsed");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user