Spieler hinzugefügt inkl. Keybinding noch unsauber

This commit is contained in:
andreas
2014-11-04 15:22:55 +01:00
parent ea7652becf
commit 79ffcf1e68
6 changed files with 162 additions and 4 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

+14 -2
View File
@@ -8,13 +8,13 @@ import de.heatup.objects.DynamicObject;
import de.heatup.objects.StaticObject; import de.heatup.objects.StaticObject;
import de.heatup.objects.logic; import de.heatup.objects.logic;
import de.heatup.ui.GameInterface; import de.heatup.ui.GameInterface;
import de.heatup.ui.KeyBindings;
import de.heatup.testing.Query;
public class GameLoop { public class GameLoop {
public static void startGameLoop() { public static void startGameLoop() {
DynamicObject dynO1 = new DynamicObject(); DynamicObject dynO1 = new DynamicObject();
GameInterface.getGamePanel().add(dynO1); GameInterface.getGamePanel().add(dynO1);
DynamicObject dynO2 = new DynamicObject(); DynamicObject dynO2 = new DynamicObject();
@@ -24,6 +24,18 @@ public class GameLoop {
DynamicObject dynO4 = new DynamicObject(); DynamicObject dynO4 = new DynamicObject();
GameInterface.getGamePanel().add(dynO4); GameInterface.getGamePanel().add(dynO4);
Player player01 = new Player();
Query.setPlayer(player01);
GameInterface.getGamePanel().add(player01);
player01.setBounds(25, 25, 200, 200);
// Keybindings as object so we can load different bindings depending on number of players.
KeyBindings kb = new KeyBindings();
GameInterface.getGamePanel().setFocusable(true);
kb.setKeyBindings();
//dynO3.setRescale(1.5,3.5); //dynO3.setRescale(1.5,3.5);
// Config.setGamePanelWidth(900); // Config.setGamePanelWidth(900);
+57
View File
@@ -0,0 +1,57 @@
package de.heatup.testing;
import java.awt.BasicStroke;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.swing.JComponent;
import de.heatup.objects.ImageLoader;
public class Player extends JComponent {
private static final long serialVersionUID = 1L;
//private Image image;
private BufferedImage bf1;
private Graphics2D g2d;
private double rescaleFactorX = 0.0;
private double rescaleFactorY = 0.0;
public void paintComponent(Graphics g) {
g2d = (Graphics2D)g;
//this.image = Toolkit.getDefaultToolkit().getImage("src/de/heatup/resources/images/little_green_guy.png");
if ( bf1 == null ) {
loadBufferedImage();
}
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
g2d.drawImage(bf1, 0, 0, this);
g2d.setStroke(new BasicStroke(8.0f));
g2d.finalize();
}
private void loadBufferedImage() {
try {
this.bf1 = ImageIO.read(new File("src/de/heatup/resources/images/little_blue_guy_verysmall.png"));
} catch (IOException e) {
e.printStackTrace();
}
}
public void setImage(BufferedImage image) {
this.bf1 = image;
}
public void setAutoBounds(int x, int y) {
this.setBounds(x, y, this.bf1.getWidth(), this.bf1.getHeight());
}
}
+12
View File
@@ -0,0 +1,12 @@
package de.heatup.testing;
public class Query {
private static Player player1;
public static void setPlayer(Player playerX) {
Query.player1 = playerX;
}
public static Player getPlayer() {
return Query.player1;
}
}
@@ -39,6 +39,7 @@ public class GameInterface extends JFrame {
//private BufferedImage image; //private BufferedImage image;
public static void createGUI() { public static void createGUI() {
try { try {
+76
View File
@@ -0,0 +1,76 @@
package de.heatup.ui;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Random;
import de.heatup.objects.ImageLoader;
import de.heatup.testing.Player;
import de.heatup.testing.Query;
public class KeyBindings {
public void setKeyBindings() {
KeyListener kl= new KeyAdapter() {
@Override public void keyPressed(KeyEvent evt) {
int keyCode = evt.getKeyCode();
switch (keyCode) {
case KeyEvent.VK_LEFT: step('x',-1); break;
case KeyEvent.VK_RIGHT: step('x',1); break;
case KeyEvent.VK_UP: step('y',-1); break;
case KeyEvent.VK_DOWN: step('y',1); break;
}
//System.out.println(KeyEvent.getKeyText(evt.getKeyCode()));
}
};
GameInterface.getGamePanel().addKeyListener(kl);
}
private void step(final char d, final int i) {
final Player playerX = Query.getPlayer();
final int stepx = 25;
final int stepy = 25;
Thread t = new Thread(new Runnable() {
@Override
public void run() {
int newx = playerX.getX();
int newy = playerX.getY();
int countx = stepx;
int county = stepy;
while (true) {
if (d == 'x' && i == -1 && countx != 0) {
countx--;
newx--;
} else if ( d == 'x' && i == 1 && countx != 0 ) {
countx--;
newx++;
} else if ( d == 'y' && i == -1 && county != 0 ) {
county--;
newy--;
} else if ( d == 'y' && i == 1 && county != 0 ) {
county--;
newy++;
} else {
break;
}
playerX.setAutoBounds(newx, newy);
try {
Thread.sleep(20);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
});
t.start();
}
}