Flotte Spiele

Transparenz

Der DirectDraw Transparenzmechanismus Weil das sehr unschön aussieht besitzt DirectDraw einen Transparenzmechanismus der auf der Definition sogenannter ColorKeys beruht Das ist eine Farbe die die transparenten Bereiche einer Grafik definiert so dass bei der Ausgabe der Hintergrund an den mit der Transparenzfarbe eingefärbten Bereichen durchscheinen kann Der transparente Donut Die Transparenzfarbe wird dazu in einer DDCOLORKEY Struktur hinterlegt Das ist ein benutzerdefinierter Datentyp der einen Farbbereich in den Elementen high und low enthält In unserem Beispiel werden beide auf denselben Farbwert nämlich Schwarz gesetzt Erzeugt wird dieser Farbwert am einfachsten über einen Aufruf der Methode CreateColorRGB aus dem DirectX Objekt CreateColor erwartet dazu die Übergabe der Rot Grün und Blau Komponenten einer Farbe Allerdings nicht wie sonst üblich in einem Wertebereich von bis sondern in einem Bereich von bis wobei der Farbe Schwarz und der Farbe Weiss entspricht Dim col As DDCOLORKEY col high dx CreateColorRGB col low dx CreateColorRGB animSurface SetColorKey _ DDCKEY_SRCBLT col primarySurface Blt rDst _ animSurface rSrc DDBLT_ WAIT Or DDBLT_KEYSRC Die initialisierte DDCOLORKEY Struktur wird durch einen Aufruf von SetColorKey an ein Surface gekettet Dabei unterscheidet DirectDraw zwischen zwei Color Key Typen Ein Source Color Key SRC legt fest welche Bereiche der zu blittenden Grafik nicht kopiert und damit transparent erscheinen sollen Ein Destination Color Key DST legt dagegen fest welche Farbe der Zielbitmap mit den Punkten aus der Quellbitmap überschrieben werden darf Weil wir in unserem Beispiel jedoch nur das Quellobjekt mit einer Transparenzfarbe versehen wollen wird der Source Color Key durch Übergabe des Flags DDCKEY_SRCBLT beim Aufruf von SetColorKey gesetzt Damit der Source Color Key beim Zeichnen der Grafik in das Primary Surface auch berücksichtigt wird muss beim Aufruf der Blt Methode das Flag DDBLT_KEYSRC zusätzlich zu DDBLT_WAIT übergeben werden Wie das im Programm aussieht zeigt das Programm im Verzeichnis \Quellen\DirectX\DirectX auf der Heft CD Gepufferte Ausgaben Nun steht bereits ein minimales Gerüst für ein Computerspiel zur Verfügung Zuerst wird der Spielfeldhintergrund gezeichnet auf den anschlie end die animierten Objekte platziert werden Hört sich einfach an ist auch einfach Allerdings gibt es noch ein kleines Problem Durch das Zeichnen des Hintergrundes werden die zuvor gezeichneten Animationsobjekte überschrieben Erst im Anschluss werden diese erneut gezeichnet Dadurch entsteht auf dem Bildschirm ein Flackern das den Anwender deutlich stört Verhindern lässt sich dieses Flackern nur wenn der Aufbau der kompletten Szene vollständig im Hintergrund verborgen vor den Augen des Betrachters stattfindet Wurde die Szene vollständig im Hintergrund aufgebaut wird die Grafikkarte zur Anzeige der Hintergrundgrafik angewiesen Der Aufbau einer kompletten Szene im Hintergrund wird als gepufferte Ausgabe bezeichnet Das bisher entworfene Programm ändert sich zur Implementation des doppelten Puffers nur marginal Innerhalb der Funktion die den Bildaufbau regelt wird zunächst das benötigte Double Buffer Surface angelegt Um dabei nicht zuviel Speicher zu verschwenden wird die Grö e des Puffer Surfaces an die aktuelle Fenstergrö e angepasst Wie bereits oben aufgeführt wird die Fenstergrö e über einen Aufruf von GetWindowRect ermittelt Dim rClient As RECT Dim rDst As RECT Call dx GetWindowRect _ Picture hWnd rDst Dimension der PictureBox holen rClient rDst rClient Right rClient Right _ rClient Left rClient Bottom _ rClient Bottom rClient Top rClient Left rClient Top

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.