G
Guest
Gast
Hallo Leute,
im Rahmen eines Semesterprojekts muss ich das Brettspiel Monopoly programmieren und hab folgendes Problem:
Ich möchte abhängig von der gewürfelten Zahl die Grafik der jeweiligen Spielfigur am Spielbrett herumwandern lassen.
Beispiel: 5 gewürfelt. Die Grafik soll sich 5 Felder mit jeweils einer Sekunde Pause pro Feld bewegen.
Entweder schaffe ich es, dass meine Schleife 5 sekunden wartet und mir das Endergebnis anzeigt, oder, dass die sleep-Funktion garnichts macht.
Zum testen hab ich mir einfach eine Grafik genommen, die sich auf Button-Aktivierung in x und y richtung 100 pro Intervall verschieben soll. Um zu sehen, was in meiner Koordinaten-Variable drin steht, hab ich auch ein Textfeld reingestellt.
Ich hab mich hier schon durch mehr oder weniger alle Thread.sleep-Topcis gewühlt und hab leider nicht verstanden, wie ich auf mein Programm angepasst die Threads verwenden soll.
Hier hab ich die Variante, in der meine Sleep-Funktion nicht berücksichtigt wird (den generierten Code von Netbeans mit der Initialisierung der Komponenten lass ich mal weg):
Hier die Hauptklasse:
und hier die Klasse für den Thread, der schlafen soll:
hoffe ihr könnt mir da helfen
im Rahmen eines Semesterprojekts muss ich das Brettspiel Monopoly programmieren und hab folgendes Problem:
Ich möchte abhängig von der gewürfelten Zahl die Grafik der jeweiligen Spielfigur am Spielbrett herumwandern lassen.
Beispiel: 5 gewürfelt. Die Grafik soll sich 5 Felder mit jeweils einer Sekunde Pause pro Feld bewegen.
Entweder schaffe ich es, dass meine Schleife 5 sekunden wartet und mir das Endergebnis anzeigt, oder, dass die sleep-Funktion garnichts macht.
Zum testen hab ich mir einfach eine Grafik genommen, die sich auf Button-Aktivierung in x und y richtung 100 pro Intervall verschieben soll. Um zu sehen, was in meiner Koordinaten-Variable drin steht, hab ich auch ein Textfeld reingestellt.
Ich hab mich hier schon durch mehr oder weniger alle Thread.sleep-Topcis gewühlt und hab leider nicht verstanden, wie ich auf mein Programm angepasst die Threads verwenden soll.
Hier hab ich die Variante, in der meine Sleep-Funktion nicht berücksichtigt wird (den generierten Code von Netbeans mit der Initialisierung der Komponenten lass ich mal weg):
Hier die Hauptklasse:
Code:
package my.grafik_move;
/**
*
* @author Kristof
*/
public class grafik_move extends javax.swing.JFrame{
public grafik_move()
{
initComponents();
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
int x = 0;
String z;
Thread t_sleep = new Thread(new sleeptimer()); //Thread erzeugen
t_sleep.start(); //Thread starten
while(x<=400)
{
jPanel1.move(x, x); //Grafik bewegen
z=Integer.toString(x); //Integer parsen, damit er ins Textfeld passt
jTextField1.setText(z); //Zwischenergebnis ins Textfeld schreiben
x+=100;
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new grafik_move().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JPanel jPanel1;
private javax.swing.JTextField jTextField1;
// End of variables declaration
}
und hier die Klasse für den Thread, der schlafen soll:
Code:
package my.grafik_move;
class sleeptimer implements Runnable {
public void run(){
try
{
Thread.sleep(1000);
}
catch (InterruptedException e){}
}
}
hoffe ihr könnt mir da helfen