From 0940957cd881683b6b448dae891bb2f7d239c90b Mon Sep 17 00:00:00 2001 From: Jonathan Hager Date: Wed, 24 Jun 2020 20:24:20 +0200 Subject: [PATCH] Lol --- build.gradle | 2 +- core/src/controller/Controller.java | 59 +++++++++++++++++++++--- core/src/view/Gamescreen.java | 47 ++++++++++++++----- core/src/view/Leveleditor.java | 4 +- gradle/wrapper/gradle-wrapper.properties | 3 +- 5 files changed, 93 insertions(+), 22 deletions(-) diff --git a/build.gradle b/build.gradle index e3251af..34c1c21 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ buildscript { google() } dependencies { - classpath 'com.android.tools.build:gradle:3.4.1' + classpath 'com.android.tools.build:gradle:4.0.0' } diff --git a/core/src/controller/Controller.java b/core/src/controller/Controller.java index 8875418..71220b2 100644 --- a/core/src/controller/Controller.java +++ b/core/src/controller/Controller.java @@ -175,21 +175,66 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ } else if (rect.getWidth() == 1) { level.get(currentChapter).get(currentLevel).verticalCollision(); } - //break; + break; } } - if(gs.getObjectRects() != null) { - for (Rectangle rect : gs.getObjectRects()) { - if (Intersector.overlaps(gs.getProjectileCirc(), rect) && !collision) { + + if(gs.getObjectRectsBottom() != null) { + for (Rectangle rect : gs.getObjectRectsBottom()) { + if (Intersector.overlaps(gs.getProjectileCirc(), rect)) { collision = true; - if (rect.getHeight() == 1) { + if (level.get(currentChapter).get(currentLevel).getProjectile().getvY() >= 0){ + level.get(currentChapter).get(currentLevel).horizontalCollision(); + } + + break; + + } + } + } + if(gs.getObjectRectsTop() != null) { + for (Rectangle rect : gs.getObjectRectsTop()) { + if (Intersector.overlaps(gs.getProjectileCirc(), rect)) { + + collision = true; + + if (level.get(currentChapter).get(currentLevel).getProjectile().getvY() <= 0) { level.get(currentChapter).get(currentLevel).horizontalCollision(); - } else if (rect.getWidth() == 1) { + } + + break; + + } + } + } + if(gs.getObjectRectsRight() != null) { + for (Rectangle rect : gs.getObjectRectsRight()) { + if (Intersector.overlaps(gs.getProjectileCirc(), rect)) { + + collision = true; + + if (level.get(currentChapter).get(currentLevel).getProjectile().getvX() <= 0) { level.get(currentChapter).get(currentLevel).verticalCollision(); } - //break; + + break; + + } + } + } + if(gs.getObjectRectsLeft() != null) { + for (Rectangle rect : gs.getObjectRectsLeft()) { + if (Intersector.overlaps(gs.getProjectileCirc(), rect)) { + + collision = true; + + if (level.get(currentChapter).get(currentLevel).getProjectile().getvX() >= 0) { + level.get(currentChapter).get(currentLevel).verticalCollision(); + } + + break; } } diff --git a/core/src/view/Gamescreen.java b/core/src/view/Gamescreen.java index 3c15041..a93d811 100644 --- a/core/src/view/Gamescreen.java +++ b/core/src/view/Gamescreen.java @@ -53,8 +53,11 @@ public class Gamescreen{ float GAME_WORLD_WIDTH; float GAME_WORLD_HEIGHT; ArrayList objects; - ArrayList objectRects; - + ArrayList objectRectsTop; + ArrayList objectRectsBottom; + ArrayList objectRectsLeft; + ArrayList objectRectsRight; + boolean win; public Gamescreen(Level level, float width, float height, Matrix4 matrix){ @@ -71,8 +74,11 @@ public class Gamescreen{ th = g.getThickness(); p = level.getProjectile(); objects = level.getObjects(); - objectRects = new ArrayList<>(); - + objectRectsTop = new ArrayList<>(); + objectRectsBottom = new ArrayList<>(); + objectRectsLeft = new ArrayList<>(); + objectRectsRight = new ArrayList<>(); + win = false; @@ -89,10 +95,10 @@ public class Gamescreen{ int hitboxWidth = 1; // CHANGE IN STEP TIMER IN CONTROLLER TOO for (Rectangle object : objects) { - objectRects.add(new Rectangle(object.getX() + 2, object.getY(), object.getWidth() - 4, hitboxWidth)); // UNTEN - objectRects.add(new Rectangle(object.getX() + 2, object.getY() + object.getHeight() - hitboxWidth, object.getWidth() - 4, hitboxWidth)); // OBEN - objectRects.add(new Rectangle(object.getX() + object.getWidth() - hitboxWidth, object.getY() + 2, hitboxWidth, object.getHeight() - 4)); // RECHTS - objectRects.add(new Rectangle(object.getX(), object.getY() + 2, hitboxWidth, object.getHeight() - 4)); // LINKS + objectRectsBottom.add(new Rectangle(object.getX() + 2, object.getY(), object.getWidth() - 4, hitboxWidth)); // UNTEN + objectRectsTop.add(new Rectangle(object.getX() + 2, object.getY() + object.getHeight() - hitboxWidth, object.getWidth() - 4, hitboxWidth)); // OBEN + objectRectsRight.add(new Rectangle(object.getX() + object.getWidth() - hitboxWidth, object.getY() + 2, hitboxWidth, object.getHeight() - 4)); // RECHTS + objectRectsLeft.add(new Rectangle(object.getX(), object.getY() + 2, hitboxWidth, object.getHeight() - 4)); // LINKS } goalRect = new Rectangle(x + w*th, y + h*th, w * th * 3, h * 0.1f); @@ -159,7 +165,16 @@ public class Gamescreen{ // object hitboxes if(objects != null) { - for (Rectangle object : objectRects) { + for (Rectangle object : objectRectsBottom) { + shapeRenderer.rect(object.getX(), object.getY(), object.getWidth(), object.getHeight()); + } + for (Rectangle object : objectRectsTop) { + shapeRenderer.rect(object.getX(), object.getY(), object.getWidth(), object.getHeight()); + } + for (Rectangle object : objectRectsRight) { + shapeRenderer.rect(object.getX(), object.getY(), object.getWidth(), object.getHeight()); + } + for (Rectangle object : objectRectsLeft) { shapeRenderer.rect(object.getX(), object.getY(), object.getWidth(), object.getHeight()); } } @@ -198,7 +213,17 @@ public class Gamescreen{ public Circle getProjectileCirc(){ return projectileCirc; } - public ArrayList getObjectRects(){ - return objectRects; + + public ArrayList getObjectRectsBottom(){ + return objectRectsBottom; + } + public ArrayList getObjectRectsTop(){ + return objectRectsTop; + } + public ArrayList getObjectRectsRight(){ + return objectRectsRight; + } + public ArrayList getObjectRectsLeft(){ + return objectRectsLeft; } } diff --git a/core/src/view/Leveleditor.java b/core/src/view/Leveleditor.java index 3d3b4b5..abff991 100644 --- a/core/src/view/Leveleditor.java +++ b/core/src/view/Leveleditor.java @@ -74,7 +74,7 @@ public class Leveleditor{ shapeRenderer.setProjectionMatrix(matrix); // CREATE DEFAULT BUTTONS - buttons = new ArrayList(); + buttons = new ArrayList<>(); buttons.add(new Button("Pivot", (int)(GAME_WORLD_WIDTH * 0.02),(int) (GAME_WORLD_HEIGHT - (buttons.size()+1) * 0.1 * GAME_WORLD_HEIGHT), 250, 80, 0)); buttons.add(new Button("Goal", (int)(GAME_WORLD_WIDTH * 0.02), (int)(GAME_WORLD_HEIGHT - (buttons.size()+1) * 0.1 * GAME_WORLD_HEIGHT), 250, 80, 1)); buttons.add(new Button("new Obstacle", (int)(GAME_WORLD_WIDTH * 0.02), (int)(GAME_WORLD_HEIGHT - (buttons.size()+1) * 0.1 * GAME_WORLD_HEIGHT), 250, 80, 2)); @@ -124,7 +124,7 @@ public class Leveleditor{ shapeRenderer.end(); batch.begin(); font.getData().setScale(1.6f); - font.draw(batch, button.getText(),button.getxPos() + button.getWidth()/2 - getTextWidth(button.getText())/2, button.getyPos() + button.getHeight()/2 + getTextHeight(button.getText())/2); + font.draw(batch, button.getText(),button.getxPos() + (float) button.getWidth()/2 - getTextWidth(button.getText())/2, button.getyPos() + (float) button.getHeight()/2 + getTextHeight(button.getText())/2); batch.end(); shapeRenderer.begin(ShapeRenderer.ShapeType.Filled); diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index f4d7b2b..84440f3 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,6 @@ +#Wed Jun 24 19:31:59 CEST 2020 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip