Flotte Spiele

Animation

Animation auf den Bildschirm Um eine Animation auf den Bildschirm zu bringen muss bei jedem Animationsschritt ein anderer Bereich der Quellbitmap in den Zielbereich des Fensters kopiert werden Wie das bei der im Bild oben vorgegebenen Bitmap aussehen könnte zeigt das folgende Listing auf der Heft CD im Verzeichnis Quellen\Directx\DirectX Sub DonutAnim x As Long _ y As Long w As Long _ h As Long iAnim As Long Dim rDst As RECT Dim rSrc As RECT iAnim iAnim Mod In jeder Zeile befinden sich Animationssequenzen rSrc Left iAnim Mod _ ddsd lWidth In der Anmiationsabbildung _ befinden sich Zeilen rSrc Top iAnim \ _ ddsd lHeight rSrc Right rSrc Left _ ddsd lWidth rSrc Bottom rSrc Top _ ddsd lHeight Call dx GetWindowRect _ Picture hWnd rDst Dimension der PictureBox holen rDst Left rDst Left x rDst Top rDst Top y rDst Right rDst Left w rDst Bottom rDst Top h primarySurface Blt rDst _ offscreenSurface rSrc DDBLT_WAIT End Sub Welche Sequenz der Animation angezeigt werden soll bestimmt in der obigen Funktion der Parameter iAnim Die Parameter x y w und h legen die Position fest an der die Ausgabe des Objektes erfolgen soll Innerhalb der Funktion wird zunächst der Parameter iAnim durch eine Division mit Rest Modulo auf den Wertebereich von bis also insgesamt Animationsstufen begrenzt Anhand dieses Wertes wird anschlie end die Position des Quellrechtecks berechnet Stellt man sich die Grafik wie ein Schachbrettmuster aus x Feldern vor berechnet die Formel iAnim Mod die Spalte innerhalb des Schachbretts während iAnim \ Division ohne Rest die Zeile im Schachbrett ermittelt Diese beiden Koordinaten müssen noch mit der Höhe und Breite eines jeden Sequenzfelder multipliziert werden Diese werden ganz einfach über ddsd lWidth und ddsd lHeight berechnet Zur Erinnerung In ddsd stehen Gesamthöhe und Gesamtbreite der geladenen Grafik Für anders aufgebaute Sequenzgrafiken müssen die Wert und angepasst werden Auch die Berechnung des Zielrechtecks ist nicht völlig unproblematisch Zur Erinnerung Das Primary Surface deckt stets den gesamten Bildschirm ab Das bedeutet dass die Ausgabe eines Objektes an Position immer die linke obere Ecke des Bildschirms beschrieben wird Soll dagegen die linke obere Ecke des Ausgabefensters als Bezugspunkt verwendet werden muss deren absolute Bildschirmposition zunächst ermittelt und als Offset für die Ausgabe eingesetzt werden Erst dann wandert die Animation mit wenn der Anwender das Fenster bewegt Um eine flüssige Animation zu erreichen muss die oben dargestellte Funktion anschlie end wiederholt aufgerufen werden Nur so sieht man auf dem Bildschirm eine Animation In einem ersten Versuch wird dazu ein Timer Control verwendet das beim Verstreichen des angegebenen Zeitintervalls Intervall Eigenschaft die nächste Sequenz zeichnet Aufgrund der Beschränkungen des Timer Controls lassen sich so jedoch maximal Bilder pro Sekunde anzeigen Später werden wir jedoch eine Methode vorstellen mit der die auf dem jeweiligen System mögliche Maximalgeschwindigkeit erreicht werden kann Ein nicht transparenter Donut auf dem Hintergrund Transparente Bilder Zunächst widmen wir uns einem anderen Thema der Perfektionierung der Ausgabe Bisher wird die Grafik so wie sie ist auf den Bildschirm platziert Im aktuellen Zeichenmodus überschreibt die neue Grafik alle bisher sichtbaren Pixel Um das Programm etwas interessanter zu gestalten wird eine einfache Hintergrundgrafik ausgegeben auf der die Animationen angezeigt werden Weil bisher keine Transparenz definiert wurde erscheint die Animation als schwarzes Rechteck mit eingebettetem Objekt

P
Computerwissen komplett aus einer Hand

Dies ist eine Nickles-Premium Seite

Der Inhalt dieser Seite ist nur Nickles Mitgliedern zugänglich. Bitte melden Sie sich mit Ihrem Premium-Account an, um diese Seite lesen zu können.

Sollten Sie bisher noch nicht über einen Account verfügen, so können Sie sich hier einen erstellen und erhalten damit Zugriff auf das gesammelte Computerwissen, alle Artikel, Tipps und vieles mehr. Zusätzlich sehen Premium-Mitglieder Nickles werbefrei.

  • Probleme mit Hard und Software müssen nicht mehr sein
  • Nickles liefert seit über 15 Jahren geballtes Wissen
  • Unverzichtbare Artikel, verständlich für alle
  • Wertvolle Tipps die bares Geld sparen
  • Schluss mit Suchen - alles hier aus einer Hand
  • Zuverlässige Profi-Informationen statt Blabla
  • Hier gibt es Zugriff auf über 2 Millionen Webseiten geballtes Computerwissen zum Schnäppchenpreis
Computerwissen komplett aus einer Hand (Angebot 1)

UNABHÄNGIG, EHRLICH, VERSTÄNDLICH

Drei Worte. Die schreiben wir nicht nur, das meinen wir auch so! Nickles-Artikel liefern konkrete unbestechliche Informationen. Egal ob für PC-Laie oder PC-Profi: auf Nickles-Infos ist Verlass! Bereits ein einziger Nickles-Artikel kann helfen, viel Zeit und Geld zu sparen!

  • Probleme mit Hard und Software müssen nicht mehr sein
  • Nickles liefert seit über 15 Jahren geballtes Wissen
  • Unverzichtbare Artikel, verständlich für alle
  • Schluss mit Suchen - alles hier aus einer Hand
  • Zuverlässige Profi-Informationen statt Blabla
  • Hier gibt es Zugriff auf über 2 Millionen Webseiten geballtes Computerwissen zum Schnäppchenpreis

Allgemeine Geschäftsbedingungen

Wir hassen lange AGB mit fiesem Kleingedrucktem. Drum sind unsere kurz und einfach - bitte sorgfältig durchlesen:
AGB - Allgemeine Geschäftsbedingungen

Bestellformular ausfüllen

Die Abrechnung der 59,95 Euro für 12 Monate erfolgt einfach per Rechnung auf dem Postweg. Dazu benötigen wir die Anschrift. Bitte alle Felder ausfüllen!

Mit * markierte Felder werden für die Bearbeitung der Bestellung benötigt und müssen ausgefüllt werden.
Hinweis: Nickles.de gibt Daten niemals weiter! Sie dienen nur für unsere interne Abwicklung der Mitgliedschaft.

Gesamtpreis: 59,95 Euro für 12 Monate
(inklusive 7 Prozent MwSt, 3,92 Euro auf 56,03 Euro)
Vereinbarungen: Widerrufsrecht: Diese Bestellung kann gemäß AGB innerhalb von zwei Wochen widerrufen werden.

Mindestlaufzeit: 12 Monate

Verlängerung: Wird nicht spätestens drei Monate vor Ablauf der Abrechnungsperiode gekündigt, verlängert sich die Premiummitgliedschaft um 12 Monate zum Preis von 59,95 Euro.
Abrechnungsperiode dann alle 12 Monate.