Puzzle 003

Die ersten Sprites

C64 Studio

Es wird Zeit, wie versprochen, endlich die ersten Sprites in unser Programm einzubauen. Beachtet bitte, dass der Beitrag relativ kurz wirkt, wie angedroht habe ich die allgemeinen Grundlagen ausgelagert.

Bevor ihr hier fortfahrt, schaut euch zunächst die Sprite-Grundlagen an.

Die Sprites zeichnen

Fügt dem Projekt jetzt ein Sprite Set hinzu und nennt es „Tiles.spriteproject“.

Ein Sprite Set hinzufügen

Stellt am besten alles, so wie auf dem folgenden Bild ein. Sehr wichtig ist der Multi-Color-Modus! Denkt auch daran, dass wir für die Sprites 40 * 40 Punkte (durch Verdopplung in X- und Y-Richtung) vorgesehen haben. Daher dürft ihr die beiden letzten Spalten rechts und die letzte Zeile unten nicht benutzen! Auch hier sollte ein Blick auf das Bild für Klarheit sorgen.

Die Puzzleteile entwerfen.

Entwerft dann, wie oben auf dem Bild, sieben Sprites, die euere Puzzleteile darstellen. Damit sich alles gut zusammenfügt, achtet auf die Übergänge. Außerdem solltet ihr auf die Reihenfolge der Sprites achten. Legt sie so an, dass sie in das folgende Raster passen und so das fertige Puzzle ergeben.

Im Editor findet ihr rechts noch den Reiter » Preview «. Damit könnt ihr eure Sprites frei positionieren und kontrollieren, ob die Übergänge der Sprites passen.

So sehen die von mir vorbereiteten Sprites aus.

Die Sprites in der Vorschau.

Diese sollen Drähte darstellen, die vom Spieler später verbunden werden müssen. Gleich im Programm erkennt ihr noch besser, wie sich alles zusammenfügt 😉 .

Sprites in den Source aufnehmen

Bevor es wirklich losgeht, fügt erstmal zu „Puzzle.asm“ eine Reihe von Konstanten hinzu, die gleich benötigt werden. Diese sollten aus dem bereits eingangs erwähntem Beitrag Sprites (ASM) bekannt sein.

Wie bei den Bildschirmen, können wir die Sprites über !media einbinden. Als Dateinamen geben wir unseren oben festgelegten Namen Tiles.spriteproject an. Dann folgt der Typ, hier sprite. Ohne weitere Angaben, würden jetzt 256*64 Bytes belegt werden. Da wir nur acht Sprites entworfen haben, sorgen wir mit dem abschließenden ,0,8 dafür, dass ab dem ersten Sprite (die Zählung beginnt bei 0!) acht Sprites geladen werden. So werden nur 512 Bytes, statt 16KB (16384 Bytes) Speicher belegt.

Fügt diesen Block auf jeden Fall VOR screenTitle und screenPuzzle ein, sonst seht ihr am Ende nur „Grütze“.

Oops, die Sprites wurden falsch eingebunden.

Die Erklärung, weshalb dies passiert, gibt es später, wenn wir uns mit der Speicherorganisation des C64 beschäftigen.

Wie bei Sprites (ASM) erwähnt, sorgt !align 63,0 dafür, dass die kommenden Bytes (oder auch Anweisungen) an einer Adresse beginnen, die bei einer UND-Verknüpfung mit der ersten Zahl 0 ergibt. Für die Sprites benötigen wir eine durch 64 teilbare Adresse. Anschließend folgt unser Label spriteTiles und dann unsere Daten.

In puzzleMain benötigen wir einen Aufruf für unsere Laderoutine. Fügt vor puzzleMainLoop einfach jsr loadSprites ein.

Die Laderoutine

Zu Beginn berechnen wir den ersten 64-Byte-Block. An dieser Stelle liegt unser erstes Sprite. Für die Berechnung verwende ich die zweite Methode, die am Ende von Sprites (ASM) erklärt wurde.

Jetzt wird noch die Variable calc16Bit benötigt, fügen wir diese einfach hinter inputState ein.

Im Akku haben wir nun den ersten 64-BYTE-Block, diesen verwenden wir jetzt, um die Startadresse der Daten für alle Sprites zu setzen. Da unsere Sprites direkt hintereinander liegen müssen wir den Akku nur für jedes Sprite um eins erhöhen.

Anschließend positionieren wir unsere Sprites erstmal so auf dem Spielfeld, wie sie nach der Lösung des Puzzles stehen müssten. Die Positionen könnt ihr durch abzählen der Zeichenabstände und unter Zuhilfenahme der Grafik vom Beitrag Sprites berechnen. Wie im vorherigen Beitrag erwähnt, sind die Sprites 20*20 Pixel groß und werden im Programm in beide Richtungen vergrößert, um auf die gewünschte Endgröße von 40*40 Pixel zu kommen. Somit nehmen die Sprites exakt den Platz von 5*5 Zeichen auf dem Bildschirm ein.

Die Farben müssen wir natürlich auch setzen. Alle Sprites haben als Hauptfarbe blau, für den Rahmen, sowie rot und grün für die Drähte.

Zum Schluß sorgen wir noch dafür, dass alle Sprites vor dem Hintergrund auftauchen, in ihrer Breite und Höhe verdoppelt werden, Multicolor sind und schließlich aktiviert werden. Dann endet die Laderoutine und springt zurück.

Nach einem Programmstart solltet ihr die Sprites auf dem Spielfeld sehen. Wie angekündigt, wurden die Sprites so entworfen, dass sie sich mit dem Hintergrund ergänzen.

Die Sprites wurden so entworfen, dass sie mit dem Hintergrund eine Einheit bilden.

Das war auch schon wieder alles, für dieses Mal. Wie gewohnt, folgt hier noch der Download.


Schrott!!Naja...Geht so...Ganz gut...SUPER! (6 Bewertungen | Ø 5,00 von 5 | 100,00%)

Loading...


ZurückWeiter

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Protected by WP Anti Spam