added UI and images

This commit is contained in:
andreas
2014-10-31 10:57:30 +01:00
parent 32bb123be0
commit 99397cc2a3
8 changed files with 276 additions and 0 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 157 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

+127
View File
@@ -0,0 +1,127 @@
package de.heatup.objects;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
public class Gegner {
private static int numberOfInstances;
private BufferedImage opponentImage;
private JLabel opponentLabel;
public Thread t;
public Gegner() throws IOException {
numberOfInstances++;
String fname;
if (numberOfInstances == 1 ) {
fname="images/red48.png";
} else if (numberOfInstances == 2) {
fname="images/green48.png";
} else {
fname="images/black48.png";
}
opponentImage = ImageIO.read(new File(fname));
opponentLabel = new JLabel(new ImageIcon(opponentImage));
this.gegnerLogik();
}
public JLabel getLabel() {
return this.opponentLabel;
}
public int getX() {
return this.opponentLabel.getLocation().x;
}
public int getY() {
return this.opponentLabel.getLocation().y;
}
private void setY(int y) {
this.opponentLabel.setLocation(this.opponentLabel.getLocation().x,y);
}
private void setX(int x) {
this.opponentLabel.setLocation(x,this.opponentLabel.getLocation().y);
}
/*
* Quick and dirty for testing...
*/
private void gegnerLogik() {
final Random rand = new Random();
t = new Thread(new Runnable() {
@Override
public void run() {
int movex=0, movey=0;
int move = 0;
int dir;
while (true) {
if ( move == 0 ) {
dir = rand.nextInt(20)+1;
// System.out.println("Entscheidung: " + dir);
if ( dir < 5 || dir > 15) {
movex = rand.nextInt(800)+1;
move = 2;
if (movex > 100) { move = -2; }
movey = 0;
// System.out.println("X " + move + " " + movex);
} else {
movey = rand.nextInt(600)+1;
move = 1;
if (movey > 100) { move = -1; }
movex = 0;
// System.out.println("X " + move + " " + movex);
}
}
if ( getLabel().getX() <= 0 && move == -2 ) {
move = move * -1;
}
if ( getLabel().getX() >= 752 && move == 2 ) {
move = move * -1;
}
if ( getLabel().getY() <= 0 && move == -1 ) {
move = move * -1;
}
if ( getLabel().getY() >= 552 && move == 1 ) {
move = move * -1;
}
// System.out.println("Move " + move + " Movex " + movex + " Movey " + movey);
if ( move == -2 && movex >= 0) {
movex -= 4;
getLabel().setBounds(getLabel().getX()-8, getLabel().getY(), 48, 48);
} else if ( move == 2 && movex >= 0) {
movex -= 4;
getLabel().setBounds(getLabel().getX()+8, getLabel().getY(), 48, 48);
} else if (move == -1 && movey >= 0) {
movey -= 4;
getLabel().setBounds(getLabel().getX(), getLabel().getY()-8, 48, 48);
} else if (move == 1 && movey >= 0) {
movey -= 4;
getLabel().setBounds(getLabel().getX(), getLabel().getY()+8, 48, 48);
} else {
move = 0;
}
// System.out.println("x: " + getX() + " y:" + getY());
try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
});
t.start();
}
}
+149
View File
@@ -0,0 +1,149 @@
package de.heatup.ui;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.image.BufferedImage;
import java.io.IOException;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class GameInterface extends JFrame {
private JPanel outerPanel;
private JPanel statusPanel;
private JPanel gamePanel;
private JPanel actionPanel;
private BufferedImage image;
public GameInterface() throws IOException {
setTitle("HeatUP!");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
setResizable(true);
createLayout();
pack();
}
public void createLayout() throws IOException {
/*
* outerPanel ist der Rahmen in dem das Spielfeld und der statusFrame vereinigt werden
*/
outerPanel = new JPanel();
outerPanel.setLayout(new BorderLayout());
outerPanel.setBorder(BorderFactory.createTitledBorder("outerPanel"));
outerPanel.setVisible(true);
/*
* statusPanel enthält Elemente wie Score, Zeit, Level etc.
*/
statusPanel = new JPanel();
statusPanel.setLayout(new GridLayout(1,4));
statusPanel.setPreferredSize(new Dimension(800,80));
statusPanel.setBorder(BorderFactory.createTitledBorder("statusPanel"));
/*
* gamePanel enthält das Spielfeld
*/
gamePanel = new JPanel();
gamePanel.setLayout(null);
gamePanel.setPreferredSize(new Dimension(800,600));
gamePanel.setBorder(BorderFactory.createTitledBorder("gamePanel"));
/*
* actionPanel enthält Informationen zum durchführen einer Tätigkeit
*/
actionPanel = new JPanel();
actionPanel.setLayout(new GridLayout(1,1));
actionPanel.setBorder(BorderFactory.createTitledBorder("actionPanel"));
actionPanel.setPreferredSize(new Dimension(800,80));
/*
* Panel korrekt im Layout ausrichten.
*/
this.getContentPane().add(outerPanel);
outerPanel.add(statusPanel,BorderLayout.NORTH);
outerPanel.add(gamePanel,BorderLayout.CENTER);
outerPanel.add(actionPanel,BorderLayout.SOUTH);
}
public static void main(String[] args) throws IOException, InterruptedException {
GameInterface gameWindow = new GameInterface();
/*
* Gegner Routine instanzieren
*/
Gegner g1 = new Gegner();
Gegner g2 = new Gegner();
Gegner g3 = new Gegner();
Objekt o1 = new Objekt("images/objekt_dot144.png");
o1.getLabel().setVisible(true);
Objekt s1 = new Objekt('0');
Objekt s2 = new Objekt('0');
Objekt s3 = new Objekt('0');
Objekt s4 = new Objekt('0');
Objekt s5 = new Objekt('0');
Objekt s6 = new Objekt('0');
/*
* Gegner auf Spielfläche hinzufügen und positionieren
*/
gameWindow.gamePanel.add(g1.getLabel());
gameWindow.gamePanel.add(g2.getLabel());
gameWindow.gamePanel.add(g3.getLabel());
gameWindow.gamePanel.add(o1.getLabel());
g1.getLabel().setBounds(300, 100, 20, 20);
g2.getLabel().setBounds(300, 200, 20, 20);
g3.getLabel().setBounds(300, 300, 20, 20);
Objekt bg = new Objekt("images/bg_gray.png");
bg.setPosition(0, 0);
gameWindow.gamePanel.add(s1.getLabel());
gameWindow.gamePanel.add(s2.getLabel());
gameWindow.gamePanel.add(s3.getLabel());
gameWindow.gamePanel.add(s4.getLabel());
gameWindow.gamePanel.add(s5.getLabel());
gameWindow.gamePanel.add(s6.getLabel());
gameWindow.gamePanel.add(bg.getLabel());
bg.getLabel().repaint();
gameWindow.gamePanel.setComponentZOrder(o1.getLabel(), 0);
gameWindow.gamePanel.setComponentZOrder(bg.getLabel(), 5);
gameWindow.gamePanel.setComponentZOrder(g1.getLabel(), 1);
gameWindow.gamePanel.setComponentZOrder(g2.getLabel(), 1);
gameWindow.gamePanel.setComponentZOrder(g3.getLabel(), 1);
gameWindow.gamePanel.setComponentZOrder(s1.getLabel(), 2);
gameWindow.gamePanel.setComponentZOrder(s2.getLabel(), 2);
gameWindow.gamePanel.setComponentZOrder(s3.getLabel(), 2);
gameWindow.gamePanel.setComponentZOrder(s4.getLabel(), 2);
gameWindow.gamePanel.setComponentZOrder(s5.getLabel(), 2);
gameWindow.gamePanel.setComponentZOrder(s6.getLabel(), 2);
s1.setPosition(0, 0);
s2.setPosition(25, 0);
s3.setPosition(50, 0);
s4.setPosition(75, 0);
}
}