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 Vordergrunddaten
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 |
|