Puzzle 003

Für diesen Beitrag wurde das CBM prg Studio verwendet.
weitersagen ...
Tweet about this on TwitterShare on FacebookShare on Google+Share on LinkedIn

CBM prg StudioDie ersten Sprites

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 mal die Grundlagen in Sprites (ASM) an.

 

So sehen die von mir vorbereiteten Sprites aus. 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 ;-).

Preview der Sprites
Preview der Sprites

 

Sprites in den Source aufnehmen
Bevor es wirklich losgeht, fügt erstmal eine Reihe von Konstanten hinzu, die gleich benötigt werden. Diese sollten aus ‚Sprites (ASM)‚ bekannt sein.

 

Wir könnten die Sprites über incbin "puzzle.spt",1,8 ins Programm einbinden. Dabei werden diese aber nicht auf 64-BYTES aufgefüllt! Um uns die Arbeit erstmal zu erleichtern, übernehmen wir die Sprites als BYTE-Zeilen ins Programm. Dazu fügen wir vor dem Label screentitel:  folgende Zeilen und die aus dem Sprite Editor exportierten BYTES der Sprites ein:

Wie bei Sprites erwähnt, sorgt align  dafür, dass die kommenden BYTES (oder auch Anweisungen) an einer durch die angegebenen Zahl teilbaren Adresse beginnen. Für die Sprites benötigen wir eine durch 64 teilbare Adresse, ohne Angabe verwendet align  automatisch die Zahl 256. Anschließen folgt unser Label spritepuzzle:  und dann die Daten (hier nur ein kurzer Auszug).

In puzzlemain: benötigen wir einen Aufruf unserer Laderoutine. Fügt vor  puzzlemainloop:  einfach jsr loadsprites: ein.

 

Die Laderoutine:
Zu Beginn berechnen wir wieder den ersten 64-BYTE-Block. An dieser Stelle liegt auch unser erstes Sprite. Für die Berechnung verwende ich die zweite Methode, die am Ende von Sprites 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 x 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 Hintergrundauftauchen, in ihrer Breite und Höhe verdoppelt werden, Multicolor sind und schließlich aktiviert werden. Dann endet die Laderoutine und springt zurück zum Aufrufer.

 

Nach einem Programmstart solltet ihr die Sprites auf dem Spielfeld sehen. Wie ihr seht, 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.
Die Sprites wurden so entworfen, dass sie mit dem Hintergrund eine Einheit bilden.

 

Das war auch schon alles für diesmal. Wie gewohnt, wieder die Links zum JaC64 und für den Download.

Start im Java-Emulator

 


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

Loading...


 

<<< zurück | weiter >>>

 

weitersagen ...
Tweet about this on TwitterShare on FacebookShare on Google+Share on LinkedIn

Schreibe einen Kommentar


Beachtet bitte, dass ich eure Kommentare erst manuell freigegeben muß, bevor sie auf der Seite erscheinen! Da ich nicht pausenlos am Rechner sitze, kann es schon mal etwas dauern, bis ein Kommentar für alle sichtbar ist.

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

Protected by WP Anti Spam