Einzelnen Beitrag anzeigen

Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 

Re: Problem mit Ballbewegung (Anfänger)

  Alt 6. Sep 2008, 12:08
AAAlso .. das mit dem Canvas der Form mag funktionieren, gut ist das aber nicht.

Eine gute Lösung ist folgendes:

1. Nimm eine Paintbox und tu sie aufs form - das ist deine Zeichenfläche

2. Deklariere im private-Bereich deines Form ein Bitmap: TBitmap;

3. Im OnCreate: Bitmap erstellen, und auf die Größe der Paintbox setzen, im OnDestroy zerstören

4. Im OnPaint der Paintbox ein Hier im Forum suchenBitblt vom Bitmap auf das Canvas der Paintbox.

5. Eine "Spielschleife" wie folgt:
Delphi-Quellcode:
procedure Form1.GameLoop()
var
  dt, lastt: Cardinal;
begin
  dt = 0;
  lastt = Gettickcount();

  while (not Application.Terminated)
  begin
    dt = Gettickcount() - lastt;
    lastt = lastt + dt;

    for each obcect in Objectlist do
      Object.anzeigen(Bitmap, dt);
    Paintbox.Refresh(dt);
    Bitmap.Clear();
    Application.Processmessages;
  end;
end;
So ähnlich zumindest - ist jetzt Pseudocode (Ist jetzt etwas Quick and Dirty)

Wenn du es richtig gut machen möchtestm, solltest du die Sxchlefe in einen Thread auslagern

6. Die Prozedur .anzeigen deines Balls muss dann in Abhängigkeit der Zeitdifferenz sich auf das übergebene Bitmap malen. Objects sind deine Objekte
  Mit Zitat antworten Zitat