diff --git a/core/src/com/trs/game/model/Model.java b/core/src/com/trs/game/model/Model.java index 024c8dd..666892b 100644 --- a/core/src/com/trs/game/model/Model.java +++ b/core/src/com/trs/game/model/Model.java @@ -61,8 +61,8 @@ public class Model { } // Generation of new projectiles - int value = (int) (Math.random() * 5) + difficulty; - if(value > 0){ + int value = (int) (Math.random() * 15); + if(value < (difficulty * 3)){ projectiles.add(spawnProjectile()); } } @@ -96,6 +96,10 @@ public class Model { break; } } + + if(Intersector.overlapConvexPolygons(tempPolygon, monster.getMonsterPolygon())){ + possible = false; + } /* for(Projectile projectile : projectiles){ if(Intersector.overlapConvexPolygons(tempPolygon,projectile.getPolygon())){ diff --git a/core/src/com/trs/game/model/Monster.java b/core/src/com/trs/game/model/Monster.java index 51fe26e..f9026bd 100644 --- a/core/src/com/trs/game/model/Monster.java +++ b/core/src/com/trs/game/model/Monster.java @@ -99,16 +99,7 @@ public class Monster { this.yPos += this.movementY; // Collisions - float[] verticesMonster = new float[8]; - verticesMonster[0] = xPos; - verticesMonster[1] = yPos; - verticesMonster[2] = xPos + WIDTH; - verticesMonster[3] = yPos; - verticesMonster[4] = xPos + WIDTH; - verticesMonster[5] = yPos + HEIGHT; - verticesMonster[6] = xPos; - verticesMonster[7] = yPos + HEIGHT; - Polygon monsterPolygon = new Polygon(verticesMonster); + Polygon monsterPolygon = getMonsterPolygon(); hp--; @@ -122,6 +113,16 @@ public class Monster { if(hp <= 0){ die(); } + + for(int i = walls.size() - 1; i >= 0; i--){ + Polygon wall = walls.get(i).getPolygon(); + if(Intersector.overlapConvexPolygons(monsterPolygon, wall)){ + setxPos(getxPos() - (int) movementX); + setyPos(getyPos() - (int) movementY); + + generateNewTarget(); + } + } } private void hit(){ @@ -131,6 +132,19 @@ public class Monster { } } + public Polygon getMonsterPolygon(){ + float[] verticesMonster = new float[8]; + verticesMonster[0] = xPos; + verticesMonster[1] = yPos; + verticesMonster[2] = xPos + WIDTH; + verticesMonster[3] = yPos; + verticesMonster[4] = xPos + WIDTH; + verticesMonster[5] = yPos + HEIGHT; + verticesMonster[6] = xPos; + verticesMonster[7] = yPos + HEIGHT; + return new Polygon(verticesMonster); + } + private void checkTarget(){ if(this.xPos == this.xPosTarget && this.yPos == this.yPosTarget){ this.generateNewTarget();