Anfängerfrage

Status
Nicht offen für weitere Antworten.

QwertY

Mitglied
huhu

Bei Google komme ich einfach nicht weiter. Dabei ist mein Problem wahrscheinlich ziemlich simpel:

Ich bin dabei ein Reaktionsspiel zu programmieren. Dabei sollen Punkte angezeigt werden, die nach kurzer Zeit wieder vom Bildschirm verschwinden. Der Spieler muss dann die genaue Anzahl der Punkte bestimmen (evt. baue ich auch noch die Ortsbestimmung ein).
Am Ende sollen daraus Statistiken, Leisten, Graphen usw. berechnet werden.

Das Zeichenen der Punkte, Fenster etc. ist kein Problem.
Nur:
Wie geht das mit der Verzögerung?

Ich zeig hier einfach mal die entscheidene Stelle:
Code:
import javax.swing.*;
import java.awt.*;

public class SpielSicht extends JPanel
{

   

    int x2 = 5; //Breite
    int y2 = 5; //Höhe
    
    
    int Punktanzahl = (int) (Math.random()*9);
    
    
    
    

    public void paint(Graphics g){ 
        if (g == null) {
          g.drawString("Bitte eine Zahl eingeben",100,100);
           return;
        }
       g.setColor(Color.red);
       int mx = getWidth()/2;
       int my = getHeight()/2;
       g.clearRect(0,0,2*mx,2*my);
       
       
       for (int k=0;k<Punktanzahl;k++)
    {
        
        if (Punktanzahl == 0) { //Sollte die Punktanzahl 0 betragen, erscheint stattdessen EIN Punkt
          Punktanzahl = 1;
        }
    
          
        int zufall = (int) (Math.random()*55);
        int x1 = (int) (Math.random()*460); //Position X
        int y1 = (int) (Math.random()*460); //Position Y
    
      x1 = x1 - zufall;
      y1 = y1 - zufall;
       
      if (x1 <= 0){
            x1 = x1 + 35;
         }
     if (y1 <= 0){
           y1 = y1 + 35;
          }
       
       g.drawOval(x1, y1, x2, y2);
    
 
} 
}
}

Vielen Dank schonmal im Vorraus^^

Gruß QwertY
 
Lies dir doch einfach mal was in nem Buch zu dem Thema Threads an 😉 ... das ist einfacher als dir jetzt alles von Anfang an zu erklären, was du ja auch erstmal lesen müsstest *g*

Jedenfalls kannst du mit den Threads dann Verzögerungen einbauen und zu bestimmten Zeitpunkten Punkte wieder löschen oder hinzufügen...

die Punkte würde ich allerdings persönlich irgendwie auch in einer Klasse realisieren... glaub ich, schön wär's dann, wenn die Punkte selbst ne paint-Methode haben, die auf dem übergebenen Graphics-Objekt zeichnen...
 
Danke schonmal 🙂

Also geht das nicht so , dass ich z.B. einfach einen Befehl wie

wait(2000);
o.ä. dazwischen setzen würde?
 
QwertY hat gesagt.:
scheinbar nicht -_-"

Noja, trotzdem thx. werd mich dann in den nächsten Tagen mal dransetzen...

Das wait hat hier ne andere Bedeutung um Verzögerungen im aktuell laufenden Thread einzubauen musst du sagen
Thread.sleep(XXX in Milisekunden). Wie lange hier dann aber tatsächlich gewartet wird, ist auch stark vom Betriebssystem und ähnlichem abhängig, da Java bei Threads auch immer von den Infos usw. abhängig ist, die das Betriebssystem an Java weiter gibt.

Wie meine Vorposter aber auch schon gesagt haben solltest du am besten erstmal was zum Thema Threads lesen.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben