From 94c04945af24a5884fef13a33e9f75a93827b59b Mon Sep 17 00:00:00 2001 From: andreas Date: Fri, 7 Nov 2014 09:11:12 +0100 Subject: [PATCH] =?UTF-8?q?Anpassungen=20an=20der=20Config=20f=C3=BCr=20Sp?= =?UTF-8?q?eedMultiplicator=20von=20Player=20und=20Opponent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HeatUp/src/de/heatup/cfg/Config.java | 5 +++++ HeatUp/src/de/heatup/testing/GameLoopD.java | 4 ++-- HeatUp/src/de/heatup/testing/Opponent.java | 13 +++++++------ HeatUp/src/de/heatup/testing/Player.java | 21 +++++++++++++++++++-- 4 files changed, 33 insertions(+), 10 deletions(-) diff --git a/HeatUp/src/de/heatup/cfg/Config.java b/HeatUp/src/de/heatup/cfg/Config.java index 8d12205..9988a2b 100644 --- a/HeatUp/src/de/heatup/cfg/Config.java +++ b/HeatUp/src/de/heatup/cfg/Config.java @@ -36,4 +36,9 @@ public class Config { * Methoden * de.heatup.ein.anderes.package.* */ + + /* + * Initiale Attribute für Player und Opponent + */ + public static int initialSpeedMultiplicator = 2; } diff --git a/HeatUp/src/de/heatup/testing/GameLoopD.java b/HeatUp/src/de/heatup/testing/GameLoopD.java index 01028fa..5d9e309 100644 --- a/HeatUp/src/de/heatup/testing/GameLoopD.java +++ b/HeatUp/src/de/heatup/testing/GameLoopD.java @@ -88,11 +88,11 @@ public class GameLoopD extends JFrame implements Runnable { opponent02 = new Opponent(); gamePanel.add(opponent02); - opponent02.setBounds(50,50,25,25); + opponent02.setBounds(150,150,25,25); opponent03 = new Opponent(); gamePanel.add(opponent03); - opponent03.setBounds(50,50,25,25); + opponent03.setBounds(550,450,25,25); gamePanel.setFocusable(true); diff --git a/HeatUp/src/de/heatup/testing/Opponent.java b/HeatUp/src/de/heatup/testing/Opponent.java index 6d315a9..bcc3be8 100644 --- a/HeatUp/src/de/heatup/testing/Opponent.java +++ b/HeatUp/src/de/heatup/testing/Opponent.java @@ -6,6 +6,7 @@ import java.util.Random; import javax.imageio.ImageIO; +import de.heatup.cfg.Config; import de.heatup.mapengine.MapGrid; public class Opponent extends Player { @@ -42,7 +43,7 @@ public class Opponent extends Player { this.d = (rand.nextInt(10) <= 4) ? 'x' : 'y'; this.i = (rand.nextInt(10) <= 4) ? 1 : -1; - // Sicher stellen das man nicht in die Richtung aus der man gekommen ist. + // Sicher stellen das man nicht in die Richtung geht aus der man gekommen ist. if ( redecide && this.d == this.prevd && this.i != this.previ ) { this.i *= -1; } @@ -57,6 +58,8 @@ public class Opponent extends Player { this.prevY = this.getGridLocation().y; // Blockade Erkennung + //TODO: Bei Kreuzung umentscheiden + // Blockade auflösen, gehe doch in die Richtung aus man gekommen ist if ( this.blocked ) { System.out.println("Warning: Block detected!"); @@ -66,10 +69,7 @@ public class Opponent extends Player { } // Blockade auflösen - - - - + // Neue Koordinaten bestimmen if (d == 'x') { testX=this.getGridLocation().x + i; testY=this.getGridLocation().y; @@ -78,6 +78,7 @@ public class Opponent extends Player { testX=this.getGridLocation().x; } + // Testen ob die gewählte Richtung begehbar ist if (MapGrid.getGridCell(testX,testY).isPath()) { this.setGridLocation(testX, testY); this.prevd = d; @@ -94,7 +95,7 @@ public class Opponent extends Player { int newx = this.getX(); int newy = this.getY(); - for (int s = 0; s<2; s++) { // speed multiplikator + for (int s = 0; s < this.speedMultiplicator; s++) { // speed multiplikator if (d == 'x' && i == -1) { newx = newx - 1; } else if (d == 'x' && i == 1) { diff --git a/HeatUp/src/de/heatup/testing/Player.java b/HeatUp/src/de/heatup/testing/Player.java index 827f3e1..7bd94d7 100644 --- a/HeatUp/src/de/heatup/testing/Player.java +++ b/HeatUp/src/de/heatup/testing/Player.java @@ -8,9 +8,12 @@ import java.awt.RenderingHints; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; + import javax.imageio.ImageIO; import javax.swing.JComponent; +import de.heatup.cfg.Config; + public class Player extends JComponent { private static final long serialVersionUID = 1L; protected BufferedImage bf1; @@ -19,6 +22,7 @@ public class Player extends JComponent { private double rescaleFactorY = 0.0; public boolean startMove = false; public boolean animate = false; + protected int speedMultiplicator = Config.initialSpeedMultiplicator; protected char d; protected int i; final int stepx = 25; @@ -28,7 +32,20 @@ public class Player extends JComponent { int stepCounter = 25; private Point currentGridPosition; - public void setGridLocation(int x, int y) { + public void setSpeedMultiplicator(int factor) { + this.speedMultiplicator *= factor; + } + + public void setSpeedMultiplicatorAbsolute(int value) { + this.speedMultiplicator = value; + } + + public void resetSpeedMultiplicator() { + this.speedMultiplicator = Config.initialSpeedMultiplicator; + } + + + public void setGridLocation(int x, int y) { currentGridPosition.setLocation(x, y); } @@ -79,7 +96,7 @@ public class Player extends JComponent { if ( startMove || animate ) { int newx = this.getX(); int newy = this.getY(); - for (int s = 0; s<2; s++) { // speed multiplikator + for (int s = 0; s < this.speedMultiplicator; s++) { // speed multiplikator if (d == 'x' && i == -1) { newx = newx - 1; } else if (d == 'x' && i == 1) {