Einzelnen Beitrag anzeigen

Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#60

AW: Touhou - BadApple!! Screensaver mit Delphi rekriiert

  Alt 13. Jul 2011, 00:05
Quatsch nix geheim .

Video frame by frame exportiert(das erledigt vegas). Jeder Frame wurde als PNG exportiert mit den nötigen alphawerten(je heller desto transparenter). Alle bilder hab ich dan über einen selbst geschriebenen packer in eine datei gepackt(animation.dat). Natürlich gibt es auch das gegenstück dazu. Da gleich am anfang die komplette tabelle für jedes bild steht(von wo bis wo), kann ich einzelne Bilder gezielt aus der Animation.dat file rausholen. EIn thread im hintergrund buffert immer 30 bilder in bitmaps. Das benötigte bild wird einem layered window zugewiesen.

Per windows api kann man einem Form diese eigenschaften zuweisen, dann kann ich darauf transparente bilder zeichnen.

Ein Timer setzt in regelmässigen abständen das bild für das LAyeredWindow neu, der Thread im hintergund gibt die Bilder wieder Frei die der AnimationsTimer bereits hintersich gelassen hat.

Um Audio immer synchron zu halten gehe ich die bilder nicht direkt chronoligisch durch. Ich frage die mediaplayer komponennte die die music spielt, bei wieviel ms ich gerade bin und errechne daraus die bild position.(so kann auchmal 1-2 bilder übersprungen werden, wenn der pc ein bild nicht schnell genug zeichnet).

Das wäre das ganze zusammengefasst

Das tolle:
Ich könnte die Animation.dat durch einen anderen film mit selber FPS ersetzen(imo wird die FPS nicht in der datei hinterlegt), und könnte dies somit benutzen


MFG
Memnarch
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden
  Mit Zitat antworten Zitat