Topic : TOS - das Betriebssystem
Author :
Version : tos.hyp (5. März 2013)
Subject : Programmieren/Atari
Nodes : 3001
Index Size : 93602
HCP-Version : 5
Compiled on : Atari
@charset : atarist
@lang :
@default : Titel
@help :
@options : +g -i -s +x +zz -t4
@width : 70
View Ref-File6.18 Draw sprite TOS Name: »Draw sprite«
Line-A Nummer: $A00D
Binding: Bindings für draw_sprite Beschreibung: Diese Line-A Funktion zeichnet ein Sprite auf den
Bildschirm. Die X Position wird in D0, die Y Position
in D1 übergeben. A0 zeigt auf eine Struktur des Typs
SDB, die den Aufbau des Sprites beschreibt. A2 zeigt
auf den Sprite-Save-Puffer, der zur Aufnahme des
geretteten Hintergrunds dient und mindestens die Größe
10 + 64 * Anzahl der Farbebenen haben muß. Das
Register A6 wird zerstört.
typedef struct
{
int16_t xhot, /* X-Offset */
yhot, /* Y-Offset */
form, /* Format (1 = VDI, -1 = XOR) */
bgcol, /* Hintergrundfarbe */
fgcol, /* Vordergrundfarbe */
image[32]; /* Sprite-Image */
} SDB;
Variable Bedeutung
xhot X-Koordinate des Aktionspunkts des Sprites,
wie bei Transform mouse.
yhot Y-Koordinate des Aktionspunkts des Sprites,
wie bei Transform mouse.
form 1 für das VDI-Format und -1 für das XOR-
Format.
bgcol Die Farbe des Hintergrunds
fgcol Die Farbe des Vordergrunds.
image Die Daten für den Vordergrund und den
Hintergrund des 16*16 Pixel großen Sprite.
Dabei wird abwechselnd zuerst ein Wort des
Hintergrunds und dann ein Wort des
Vordergrunds gespeichert.
Das Ergebnis auf dem Bildschirm ist abhängig von dem
in form bestimmten Format und kann für jeweils 1 Bit
aus den Vorgergrunddaten und Hintergrunddaten der
folgenden Tabelle entnommen werden. Old ist der
bisherige Bildpunkt, new der neue nach dem Zeichnen
des Sprite:
Vordergr. Hintergr. VDI-Format XOR-Format
0 0 new = old new = old
0 1 new = bgcol new = bgcol
1 0 new = fgcol new = fgcol xor old
1 1 new = fgcol new = fgcol
Ergebnis: Die Funktion liefert keinen Returnwert.
Verfügbar: Alle TOS-Versionen.
Querverweis: BindingTransform mouseUndraw sprite