Registriert seit: 2. Aug 2004
359 Beiträge
|
Re: Physik-Simulation: Bekomme Flackern nicht unter Kontroll
24. Mai 2009, 13:12
Hallo jfheins,
dankeschön für Deinen Vorschlag!
Hierzu noch mal eine kleine Nachfrage.
Du schlägst vor:
---------------------------------
// OnTimer oder so
begin
Ball.Step(deltaT);
MyBitmap.Clear();
Gitternetz.Paint();
Ball.Paint();
BitBlt({MyBitmap => Paintbox});
end;
---------------------------------
Das würde doch bedeuten, dass bei jedem Pixel um das sich der Ball bewegt, wird
1. Das gesamte "Spielfeld" gelöscht.
2. Das Gitternetz neu gezeichnet
3. Der Ball auf dem Gitternetz gezeichnet
4. Schlussendlich der OffScreen auf das sichtabre Canvas gezeichnet.
Ich frage mich ob der Schritt 1 und 2 nicht unnötig sind? Natürlich nur wenn das Gitternetz und der Ball auf verschiedene Canvas' gezeichnet würden: Am Gitternetz ändert sich doch nichts -- wozu es Neuzeichnen? Wenn der Ball ein eingenständiges Objekt ist, und ein eigenes Image zur Verfügung hat, dann müßte es doch viel effektiver (schneller) sein, nur den Ball zu zeichnen, ihn zu löschen (unsichtbar machen), und dann an der neuen Position zu zeichnen. Man würde somit nur 5% des sichtbaren Images (Gitternez plus Ball) neuzeichnen, statt das gesamte Gitternetz löschen, neuzeichnen, Ball löschen, neuzeichnen.
Bei meinem (zugegeben sehr flackrigem) Vorgehen, ist der Ball ein eigenständiges Objekt -- und nicht nur ein Kreis auf dem Gitternetz.
Sehr verwirrend das Alles -- aber vielleicht kommt jetzt durch was ich damit meine Gitternetz und Ball sollten "unabhängig" sein.
Vielen Dank für Deinen Kommentar.
Gruss
Jazzman
|