GammelJan 6 years ago
commit 10528a47d5

@ -46,7 +46,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
boolean isColliding; boolean isColliding;
Level[] level; Level[] level;
int currentLevel; int currentLevel;
int beatenLevel; int beatenLevel = 9;
OrthographicCamera camera; OrthographicCamera camera;
@ -85,6 +85,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
level[7] = new Level(new Goal(1000,600,450,100, 0.2f), new Projectile(0,0,0),200,200); level[7] = new Level(new Goal(1000,600,450,100, 0.2f), new Projectile(0,0,0),200,200);
level[8] = new Level(new Goal(760,460,450,100, 0.2f), new Projectile(0,0,0),200,200); level[8] = new Level(new Goal(760,460,450,100, 0.2f), new Projectile(0,0,0),200,200);
level[9] = new Level(new Goal(1000,580,350,100, 0.2f), new Projectile(0,0,0),200,200); level[9] = new Level(new Goal(1000,580,350,100, 0.2f), new Projectile(0,0,0),200,200);
level[9].addRectangle(400, 400, 50,200);
stepTimer = new Timer(); stepTimer = new Timer();
stepTimer.scheduleTask(new Timer.Task() { stepTimer.scheduleTask(new Timer.Task() {
@ -119,18 +120,20 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
} }
} }
} }
for(Rectangle rect : gs.getObjectRects()){ if(gs.getObjectRects() != null) {
if(Intersector.overlaps(gs.getProjectileCirc(), rect)) { for (Rectangle rect : gs.getObjectRects()) {
if (Intersector.overlaps(gs.getProjectileCirc(), rect)) {
collision = true;
if (!isColliding) { collision = true;
if (rect.getHeight() == 1) { if (!isColliding) {
level[currentLevel].horizontalCollision(); if (rect.getHeight() == 1) {
} else if (rect.getWidth() == 1) { level[currentLevel].horizontalCollision();
level[currentLevel].verticalCollision(); } else if (rect.getWidth() == 1) {
level[currentLevel].verticalCollision();
}
isColliding = true;
break;
} }
isColliding = true;
break;
} }
} }
} }

@ -46,6 +46,8 @@ public class Level {
this.yPosPivot = yPosPivot; this.yPosPivot = yPosPivot;
this.angle = 0; this.angle = 0;
this.angleSpeed = 0; this.angleSpeed = 0;
objects = new ArrayList<>();
traceIndex = 0; traceIndex = 0;
isTraceInitialised = new boolean[50]; isTraceInitialised = new boolean[50];

@ -62,13 +62,15 @@ public class Gamescreen{
pivotX = level.getPivotX(); pivotX = level.getPivotX();
pivotY = level.getPivotY(); pivotY = level.getPivotY();
g = level.getGoal(); g = level.getGoal();
objects = level.getObjects();
x = g.getxPos(); x = g.getxPos();
y = g.getyPos(); y = g.getyPos();
w = g.getSizeX(); w = g.getSizeX();
h = g.getSizeY(); h = g.getSizeY();
th = g.getThickness(); th = g.getThickness();
p = level.getProjectile(); p = level.getProjectile();
objects = level.getObjects();
objectRects = new ArrayList<>();
win = false; win = false;
@ -83,12 +85,14 @@ public class Gamescreen{
goalRects[5] = new Rectangle(x + th*4 * w ,y + h - 1f ,w *th ,1 ); goalRects[5] = new Rectangle(x + th*4 * w ,y + h - 1f ,w *th ,1 );
goalRects[6] = new Rectangle(x + w-1 ,y ,1 ,h ); goalRects[6] = new Rectangle(x + w-1 ,y ,1 ,h );
goalRects[7] = new Rectangle(x ,y ,w ,1 ); goalRects[7] = new Rectangle(x ,y ,w ,1 );
for(Rectangle object : objects){ if(objects != null) {
objectRects.add(new Rectangle(object.getX(), object.getY(), 1, object.getHeight())); for (Rectangle object : objects) {
objectRects.add(new Rectangle(object.getX(), object.getY() + object.getHeight() - 1, object.getWidth(), 1)); objectRects.add(new Rectangle(object.getX(), object.getY(), 1, object.getHeight()));
objectRects.add(new Rectangle(object.getX() + object.getWidth()-1, object.getY(), 1, object.getHeight())); objectRects.add(new Rectangle(object.getX(), object.getY() + object.getHeight() - 1, object.getWidth(), 1));
objectRects.add(new Rectangle(object.getX(), object.getY(),object.getWidth(), 1)); objectRects.add(new Rectangle(object.getX() + object.getWidth() - 1, object.getY(), 1, object.getHeight()));
objectRects.add(new Rectangle(object.getX(), object.getY(), object.getWidth(), 1));
}
} }
goalRect = new Rectangle(x + w*th, y + h*th, w * th * 3, h * 0.1f); goalRect = new Rectangle(x + w*th, y + h*th, w * th * 3, h * 0.1f);
@ -106,6 +110,7 @@ public class Gamescreen{
pivotY = level.getPivotY(); pivotY = level.getPivotY();
g = level.getGoal(); g = level.getGoal();
objects = level.getObjects();
shapeRenderer.begin(ShapeRenderer.ShapeType.Filled); shapeRenderer.begin(ShapeRenderer.ShapeType.Filled);
shapeRenderer.setColor(Color.BLACK); shapeRenderer.setColor(Color.BLACK);
@ -129,9 +134,11 @@ public class Gamescreen{
shapeRenderer.rect(x + th * w,y, th*3 * w,th * h); shapeRenderer.rect(x + th * w,y, th*3 * w,th * h);
shapeRenderer.rect(x + th *w + th*3 * w, y, th * w,h); shapeRenderer.rect(x + th *w + th*3 * w, y, th * w,h);
shapeRenderer.circle((float) p.getxPos(), (float) p.getyPos(), p.getRadius()); shapeRenderer.circle((float) p.getxPos(), (float) p.getyPos(), p.getRadius());
for(Rectangle object : objects){ if(objects != null) {
shapeRenderer.rect(object.getX(), object.getY(), object.getWidth(), object.getHeight()); for (Rectangle object : objects) {
shapeRenderer.rect(object.getX(), object.getY(), object.getWidth(), object.getHeight());
}
} }
shapeRenderer.setColor(Color.RED); shapeRenderer.setColor(Color.RED);
@ -152,8 +159,10 @@ public class Gamescreen{
shapeRenderer.rect(g.getxPos(), g.getyPos(), g.getSizeX(), g.getSizeY()); shapeRenderer.rect(g.getxPos(), g.getyPos(), g.getSizeX(), g.getSizeY());
*/ */
// object hitboxes // object hitboxes
for(Rectangle object: objectRects){ if(objects != null) {
shapeRenderer.rect(object.getX(), object.getY(), object.getWidth(), object.getHeight()); for (Rectangle object : objectRects) {
shapeRenderer.rect(object.getX(), object.getY(), object.getWidth(), object.getHeight());
}
} }

Loading…
Cancel
Save