Archief - Java - Herhaal actie om de x seconden

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Zipper89

Legacy Member
import java.util.Timer;
import java.util.TimerTask;

/**
* Write a description of class SchotThread here.
*
* @author (your name)
* @version (a version number or a date)
*/

public class SchotThread extends TimerTask implements Runnable
{
private View v;
private Rooster m;
private Timer timer;
private TimerTask vuur;

public SchotThread(Rooster r, View view)
{
v = view;
m = r;
}


Timer timer = new Timer();
TimerTask vuur = new TimerTask() {
public void run() {
try {
while (true) {
Thread.sleep(250);
Alien vijand = m.getVijand();
Schot schot = m.getSchot();

if(!schot.active){
schot.set(vijand.getX(), vijand.getY());}

if (schot.active)
{
schot.onder() ;
}

v.repaint();
}
}


catch (Exception e) {}
}};
timer.scheduleAtFixedRate(vuur,1000,7000);


}



Kan iemand mij vertellen waar ik in de fout ben gegaan? De code die ik wil laten herhalen is het vuren van een schot door een alien. Het vuren van één enkel schot vormt geen enkel probleem. Bedankt alvast!

(het is via BlueJ en ik probeer dus zowat het spel Space Invaders te maken)

Kemblin

Legacy Member
je code beter tussen code-tags zetten. Wat loopt er net fout? Waarom heb je nog een while(true) in je run() methode?

Zipper89

Legacy Member
Als ik het wil compilen krijg ik deze melding

<identifier> expected en dan wordt mijn laatste regel aangeduid: timer.scheduleAtFixedRate(vuur,1000,7000);

Er zou ook iets mis kunnen zijn met dit:
public class SchotThread extends TimerTask implements Runnable
Want als ik soms wat dingen aanpas krijg ik een melding:
SchotThread is not abstract and does not override abstract method run() in Java. util. TimerTask




(ik heb nog nooit dergelijke code uitgeprobeerd) Wat moet er eigelijk in de class TimerTask staan?)

Parnakra

Legacy Member
Je zet je SchotThread klasse op om TimerTask te implementeren maar gaat dan een anonieme TimerTask gebruiken - niet de bedoeling, lijkt me.

En als dit je integrale code is, kan ik geloven dat het niet wil compileren: je zit statements en assignments in de body van je klasse te steken. :s

Ook denk ik dat als je MVC gebruikt (wat ik afleid uit je View-attribuut), je best een globale timer bijhoudt in je model zodat je alle acties in het spel daarop kan afstemmen.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan