Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Slenderguy

Frischling

  • »Slenderguy« ist der Autor dieses Themas

Beiträge: 53

Wohnort: Schleswig-Holstein

  • Private Nachricht senden

21

15.11.2015, 18:47

Habe den falschen Code rausgegeben, sry.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class AnyClass extends JPanel{
      
    public int var = 0;
    public ActionListener action;
    Timer timer;
    
     public AnyClass(){
         timer = new Timer(100, action);
         timer.start();
         action = new ActionListener(){
             public void actionPerformed(ActionEvent e){
                            
                 var = +5;
                 repaint();
             }
         };      
     }
     
     public void paintComponent(Graphics g){
         super.paintComponent(g);
         g.setColor(Color.ORANGE);
         g.fillRect(var, 0, 200, 200);
     } 
}

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

22

15.11.2015, 18:52

Zeile 8 vor Zeile 10 auszuführen macht auch keinen Sinn. Denn in Zeile 8 hat action welchen Wert?

du weiß var die ganze zeit die 5 zu, ist klar das sich ncihts ändert
Ändern soll sich zwar bestimmt was, aber ist an sich für das eigentliche Problem unerheblich. Wenn Zeile 8 und 10 richtig wären, wäre zumindest etwas sichtbar.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Slenderguy

Frischling

  • »Slenderguy« ist der Autor dieses Themas

Beiträge: 53

Wohnort: Schleswig-Holstein

  • Private Nachricht senden

23

15.11.2015, 19:03

Probleme gelöst.
Ich werde jetzt nur noch mit diesem Grundgerüst Arbeiten.

Slenderguy

Frischling

  • »Slenderguy« ist der Autor dieses Themas

Beiträge: 53

Wohnort: Schleswig-Holstein

  • Private Nachricht senden

24

16.11.2015, 16:07

Nach so viel vergeudeter Zeit um das Verständnis zu erlangen bin ich leider wenig erleichtert, aber wie kann man den ohne dem Frame zeichnen ?

25

16.11.2015, 19:52

Wenn du das meinst (magst kein Englisch? macht nix)

Oder meintest du was anderes mit "ohne Frame"?

Edit:
Da hab ich wohl voreilig die lmgtfy-Keule rausgeholt.. ich nehme an du meinst [Anonymer Benutzer]s Aussage zu "Frameunabhängig"..
Damit meint er jedoch nicht das JFrame, sondern die Art und Weise, wie deine "Steps" berechnet werden.
Mit deiner jetzigen Lösung mit dem Timer machst du alle x Millisekunden zwei Dinge auf einmal: Du berechnest die Logik (z.B. Update der Position deines Pong-Balls, der Paddle etc) und zeichnest den aktuellen Stand.

Das hat jedoch ein paar Nachteile, die du (und damit ist die lmgtfy-Keule vielleicht doch nicht ganz ungerechtfertig) durch Recherchen bezüglich der Frameunabhängigkeit respektive "Game Loop" in Erfahrung bringen kannst :)

Kurz zur Motivation:
Du berechnest und zeichnest immer 60x Sekunde (also pro Frame 1000/60= 16,666..ms).

Was wenn jemand einen langsameren Rechner hat und die nicht schafft?
Was wenn jemand schnellere Hardware hat und du ihn künstlich auf 60 FPS beschränkst?
Was wenn der Rechner kurz hängt und mal 20ms für einen Frame brauch?
Was wenn...

Du merkst: Dein Spiel ist frameabhängig.. und das willst du nicht :)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »InselÄffchen« (16.11.2015, 20:01) aus folgendem Grund: Plumple Antwort erweitert


Werbeanzeige