Thema: Delphi flackerfreies repaint

Einzelnen Beitrag anzeigen

Benutzerbild von dajuhsa
dajuhsa

Registriert seit: 20. Apr 2007
397 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: flackerfreies repaint

  Alt 22. Aug 2007, 11:15
also ich habe:
MainBit: TBitmap
-wird zu programmstart createt und ein Bild aus ressource reingeladen (der ball)(und im ondestroy wieder free)
SpinBit: TBitmap
-Da wird das MainBit gedreht reingezeichnet und das SpinBit dann mit StretchDraw auf die Form.Canvas(der gedrehte ball)
Doublebuffered steht schon längst auf true
Delphi-Quellcode:
procedure TForm1.Render;
begin
  PlrBitSpin := TBitmap.Create;
  try
    RotateBitmap(PlrBitSpin, PlrBitMain, Winkel, clWhite,
                 false, true);
    Canvas.StretchDraw(
      rect(Position.X-25, Position.Y-25, Position.X+25, Position.Y+25),
      PlrBitSpin
                      );
  finally
    PlrBitSpin.Free;
  end;
end;
Delphi-Quellcode:
procedure TForm1.Run;
begin
  Timer := GetTickCount;
  while GetAsyncKeyState(VK_ESCAPE)=0 do
  begin
    while Timer + Interval > GetTickCount do // Zeitbremse
      Application.ProcessMessages; // Pseudo-Timer
    Input; // Reagiert auf 'a' und 'd'
    Winkel := Winkel + Speed; // Ball dreht sich
    Position.X := Position.X + Speed; // Ball bewegt sich
    if Position.X < 0 then Position.X := 0;
    if Position.X > screen.Width then Position.X := screen.Width;
    Render; // Ball zeichnet sich
  end;
  Close;
end;
nur mal als ansatz. wenn ihr mehr braucht zeig ich euch auch gern alles.

[Edit] @Jim: wie soll das gehen mit Bitmap.Canvas komm ich nicht weiter, könntest du mir bitte eventuell ein bisschen code opfern? [/Edit]
Edit : bin jetz n bisschen weiter aber wie man sieht blitzt es immer noch und man sieht noch zu viel weiß. helft mir bitte
Angehängte Dateien
Dateityp: rar prjball_106.rar (1,11 MB, 13x aufgerufen)
das Essen ist wie das Internet - Downstream ist immer angenehmer als Upstream
-
Warum missbraucht die ganze Programmierwelt Images als Paintboxen
  Mit Zitat antworten Zitat