AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Replay-Funktion in einem Spiel?
Thema durchsuchen
Ansicht
Themen-Optionen

Replay-Funktion in einem Spiel?

Ein Thema von calculon · begonnen am 23. Okt 2007 · letzter Beitrag vom 23. Okt 2007
Antwort Antwort
Benutzerbild von calculon
calculon

Registriert seit: 16. Sep 2006
256 Beiträge
 
Delphi 7 Personal
 
#1

Replay-Funktion in einem Spiel?

  Alt 23. Okt 2007, 10:43
Morgen,

ich versuche gerade eine Replay-Funktion in ein Spiel einzubauen. Das mache ich so, dass ich in einem Timer Screenshots von einem Bereich des Screens mache und diese wiederum in einem Timer "abspiele". Mit dem Ergebnis bin ich sehr unzufrieden, weil wenn die Form verdeckt ist, das überdeckende Fenster gespeichert wird und überhaupt kommt' mir diese Lösung sehr wackelig vor.

Hat jemand bessere Ideen eine Replay-Funktion in ein Spiel einzubauen?

Hier ma' die Screenshot-Funktion:
Delphi-Quellcode:
function CaptureScreenRect( ARect: TRect ): TBitmap;
var
  ScreenDC: HDC;
begin
  Result := TBitmap.Create;
  with Result, ARect do
  begin
    Width := Right - Left;
    Height := Bottom - Top;
    ScreenDC := GetDC( 0 );
    try
      BitBlt( Canvas.Handle, 0, 0, Width, Height, ScreenDC,
        Left, Top, SRCCOPY );
    finally
      ReleaseDC( 0, ScreenDC );
    end;
  end;
result.SaveToFile(ExtractFilePath(Paramstr(0))+'replay\'+'Shot'+inttostr(nr)+'.bmp');
nr:=nr+1; // <-- eine globale Variable
result.Free;
end;
Gruß

Calculon
--
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Replay-Funktion in einem Spiel?

  Alt 23. Okt 2007, 10:49
Da Du ja alle Informationen hast, um selber den aktuellen Spielstand zu zeichnen, musst Du diese Daten nur regelmässig speichern. Z.B. welche Figur gerade wo ist, usw. - was da zu speichern ist, hängt natürlich von Deinem Spiel ab. Screenshots vom eigenen Fenster sind da wohl eher suboptimal
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
Benutzerbild von calculon
calculon

Registriert seit: 16. Sep 2006
256 Beiträge
 
Delphi 7 Personal
 
#3

Re: Replay-Funktion in einem Spiel?

  Alt 23. Okt 2007, 10:52
Zitat von OldGrumpy:
Da Du ja alle Informationen hast, um selber den aktuellen Spielstand zu zeichnen, musst Du diese Daten nur regelmässig speichern. Z.B. welche Figur gerade wo ist, usw. - was da zu speichern ist, hängt natürlich von Deinem Spiel ab. Screenshots vom eigenen Fenster sind da wohl eher suboptimal
Und die Arbeit wollte ich mir eigentlich ersparen (es tummelt sich so einiges auf dem Bildschirm herum http://www.krazz.net/smil/katze[1].gif). Ich hoffe ja auf eine schnellere einfachere Lösung, weil ansonsten das Feature wahrscheinlich ausfällt.

Gruß

Calculon
--
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.336 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Replay-Funktion in einem Spiel?

  Alt 23. Okt 2007, 11:02
Hallo Calculon,

ich denke auch, dass Du alle Ereignisse mit einem Zeitstempel speichern musst. Das geht schneller und braucht weniger Speicher.

Es gibt Screenrecorder, die alles auf dem Bildschirm mitschneiden (siehe Daniel-Videos), die brauchen aber ganz ordenetlich Prozessorleistung und Zeit. Das ist sicher nicht anders, wenn du Screen-Copys machst.

stahli
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz