RauchenderDachs
Cadet 4th Year
- Registriert
- Dez. 2012
- Beiträge
- 70
Hi Leute,
ich versuche gerade mehrer gleiche Objekte (Creeps) auf einer vordefinierten Bahn zu bewegen. Dazu benutze ich folgenten Quellcode.
Es wird allerdings immer nur ein Objekt dargestellt und bewegt. Die anderen 4 erscheinen gar nicht auf dem Bildschirm.
Hier noch der Quellcode con Creep.java:
Mit freundlichen Grüßen
RauchenderDachs
ich versuche gerade mehrer gleiche Objekte (Creeps) auf einer vordefinierten Bahn zu bewegen. Dazu benutze ich folgenten Quellcode.
Code:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package towerdefencev4;
import javax.swing.*;
import java.awt.*;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
*/
public class GUI extends JFrame implements Runnable{
/**
* @param args the command line arguments
*/
private Image dbImage;
private Graphics dbGraphics;
static private Creep dasCreep[] = new Creep[5];
public GUI(String title){
super(title);
for(int n=0 ;n<dasCreep.length;n++){
dasCreep[n]= new Creep(40,25,this);
System.out.println(n);
}
}
public static void main(final String[] args) {
final GUI dieOberfläche = new GUI("TowerDefencev4");;
dieOberfläche.setSize(400, 600);
dieOberfläche.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
new Thread(dieOberfläche).start();
dieOberfläche.setVisible(true);
dieOberfläche.add(new JPanel() {
@Override
public void paint(final Graphics g) {
super.paint(g);
//Hintergrund
g.drawImage(Toolkit.getDefaultToolkit().getImage("../img/ground.gif"), 0, 0, this);
//Creep
for(int n=0 ;n<dasCreep.length;n++){
dasCreep[n].paintcreep(g);
System.out.println(n);
}
}
});
}
@Override
public void run() {
while(true){
for(int n=0;n<dasCreep.length;n++){
dasCreep[n].move();
System.out.println(n);
}
repaint();
try {
Thread.sleep(20);
} catch (InterruptedException ex) {
Logger.getLogger(GUI.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
public void update(Graphics g)
{
//Double-Buffer initialisieren
if (dbImage == null) {
dbImage = createImage(
this.getSize().width,
this.getSize().height
);
dbGraphics = dbImage.getGraphics();
}
//Hintergrund löschen
dbGraphics.setColor(getBackground());
dbGraphics.fillRect(
0,
0,
this.getSize().width,
this.getSize().height
);
//Vordergrund zeichnen
dbGraphics.setColor(getForeground());
paint(dbGraphics);
//Offscreen anzeigen
g.drawImage(dbImage,0,0,this);
}
}
Hier noch der Quellcode con Creep.java:
Code:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package towerdefencev4;
import javax.swing.*;
import java.awt.*;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
*/
public class GUI extends JFrame implements Runnable{
/**
* @param args the command line arguments
*/
private Image dbImage;
private Graphics dbGraphics;
static private Creep dasCreep[] = new Creep[5];
public GUI(String title){
super(title);
for(int n=0 ;n<dasCreep.length;n++){
dasCreep[n]= new Creep(40,25,this);
System.out.println(n);
}
}
public static void main(final String[] args) {
final GUI dieOberfläche = new GUI("TowerDefencev4");;
dieOberfläche.setSize(400, 600);
dieOberfläche.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
new Thread(dieOberfläche).start();
dieOberfläche.setVisible(true);
dieOberfläche.add(new JPanel() {
@Override
public void paint(final Graphics g) {
super.paint(g);
//Hintergrund
g.drawImage(Toolkit.getDefaultToolkit().getImage("../img/ground.gif"), 0, 0, this);
//Creep
for(int n=0 ;n<dasCreep.length;n++){
dasCreep[n].paintcreep(g);
System.out.println(n);
}
}
});
}
@Override
public void run() {
while(true){
for(int n=0;n<dasCreep.length;n++){
dasCreep[n].move();
System.out.println(n);
}
repaint();
try {
Thread.sleep(20);
} catch (InterruptedException ex) {
Logger.getLogger(GUI.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
public void update(Graphics g)
{
//Double-Buffer initialisieren
if (dbImage == null) {
dbImage = createImage(
this.getSize().width,
this.getSize().height
);
dbGraphics = dbImage.getGraphics();
}
//Hintergrund löschen
dbGraphics.setColor(getBackground());
dbGraphics.fillRect(
0,
0,
this.getSize().width,
this.getSize().height
);
//Vordergrund zeichnen
dbGraphics.setColor(getForeground());
paint(dbGraphics);
//Offscreen anzeigen
g.drawImage(dbImage,0,0,this);
}
}
Mit freundlichen Grüßen
RauchenderDachs