CountDown

Status
Nicht offen für weitere Antworten.

monster2812

Mitglied
Hallo zusammen,

habe folgendes Problem:

Muss für ein Java-Spiel einen CountDown erstellen der von 60 Sekunden bis Null herunterzählt. Hab leider wenig Ahnung von Java, kann mir da jemand helfen? Bitte!

monster2812
 

ARadauer

Top Contributor
Code:
import java.util.TimerTask;
import java.util.Timer;



public class Test2 extends TimerTask {

	private int countDown = 0;
	private Timer t;
	
	
	public static void main(String[] args) {
		new Test2(20);
	}
	
	public Test2(int countDown){
		this.countDown = countDown;
		t = new Timer();
		t.scheduleAtFixedRate(this, 0, 1000);
	}

	public void run(){
		countDown--;
		System.out.println(countDown);
		if(countDown<=0){
			System.out.println("vorbei");
			t.cancel();
		}

	}

}

infos zum Timer
http://java.sun.com/javase/6/docs/api/java/util/Timer.html
 

Niki

Top Contributor
Code:
		Timer timer = new Timer("Countdown");
		TimerTask tt = new TimerTask(){
			
			private int counter = 60;
			
			@Override
			public void run() {
				if(counter < 0){					
					cancel();
					return;
				}				
				System.out.println(counter--);				
			}			
		};
		timer.scheduleAtFixedRate(tt, new Date(), 1000);
 

monster2812

Mitglied
Danke für den Quellcode, das von ARadauer hat funktioniert. Habe folgendes Spiel bisher programmiert, wie implementiere ich den CountDownzähler für das Spiel? Soll in einem kleinen Fenster oder eben direkt im Spiel angzeigt werden. Danke für die Hilfe!!!

Quellcode:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Random;
import java.lang.Math;


public class CSpielfeld{

JFrame frame = new JFrame("Hau drauf");
static CSpielfeld spiel = new CSpielfeld();
CFeld [] feld;
static int feldzahl;
JMenuBar menubar;
//Atribut für die Maximale Spaltenbreite um ein Quadrat zu bekommen
int max = 0;


CSpielfeld(){

menubar = new JMenuBar();
frame.setSize(500, 500);
frame.setVisible(true);

JMenu mspiel = new JMenu("Spiel"); // mspiel = Menu variable

JMenuItem mispiel1 = new JMenuItem("Neues Spiel"); // mispiel = MenuItem variable
JMenuItem mispiel2 = new JMenuItem("Highscore");
JMenuItem mispiel3 = new JMenuItem("Beenden");

mspiel.add(mispiel1);
mspiel.add(mispiel2);
mspiel.addSeparator();
mspiel.add(mispiel3);
menubar.add(mspiel);
frame.setJMenuBar(menubar);

}

//methode um ein neues Spielfeld zu erstellen
public void neuesSpiel(int feldanzahl){
feldzahl = feldanzahl;
feld = new CFeld[feldanzahl];

max = (int) Math.sqrt((double)feldanzahl);
frame.getContentPane().setLayout(new GridLayout(max,max));
// Spielfelder initialisieren
for(int zähler=0; zähler<feldzahl; zähler++){
feld[zähler] = new CFeld();
feld[zähler].setBorderPainted(false);
feld[zähler].addActionListener(new CMeinActionLauscher());
frame.getContentPane().add(feld[zähler]);
}
}

// Methode um den das Spielfeld beim richtigen Button druck wieder neu zu kalibrieren
public void nextTake(int feldzahl){

Random zufall = new Random();
int zufallszahl = zufall.nextInt(feldzahl);
// Spielfeld mit default feldern füllen
for(int i=0;i<feldzahl;i++){
feld.setIcon(new ImageIcon("gras.gif"));
feld.setActionCommand("niete");
}
// Das Ziel setzen
feld[zufallszahl].setIcon(new ImageIcon("Soldat2.png"));
feld[zufallszahl].setActionCommand("treffer");
feld[zufallszahl].setTreffer(true);

}
// Methode um um das Änderungintervall zu setzen
public void setSleep(long time){
try {
Thread.sleep(time);
}
catch(Exception e)
{return;}
}

public static void main(String [] args){
spiel.neuesSpiel(36);
while (true){
spiel.nextTake(36);
spiel.setSleep(1000);
}
}

//überwachung der Treffer
class CMeinActionLauscher implements ActionListener {
public void actionPerformed(ActionEvent e) {

String Label = new String();
Label = e.getActionCommand();

if(Label.equals("treffer")){
System.out.println("richtig");
spiel.nextTake(feldzahl);

}
}
}
}

// Button Klasse
class CFeld extends JButton{

boolean treffer = false;

void setTreffer(boolean getroffen){
treffer = true;
}

boolean getTreffer(){
return treffer;
}
}
 
G

Guest

Gast
Bin eben Anfänger, hab halt wenig Erfahrung, darum bitte ich ja um Hilfe.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Countdown-Timer für Spiel Spiele- und Multimedia-Programmierung 4

Ähnliche Java Themen

Neue Themen


Oben