Anpassungen an der Config für SpeedMultiplicator von Player und Opponent

This commit is contained in:
andreas
2014-11-07 09:11:12 +01:00
parent 7494bc0311
commit 94c04945af
4 changed files with 33 additions and 10 deletions
+5
View File
@@ -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;
}
+2 -2
View File
@@ -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);
+7 -6
View File
@@ -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) {
+19 -2
View File
@@ -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) {