'============================================================================
' (p)'23/02/2003 by East-Power-Soft
'
' Tipp 4: Nutzen des PUT Befehls zum Animieren eines transparenten Objekts.
'============================================================================
SCREEN 13
'============================================================================
' Die Routine bewegt ein Bild transparent mit POKE.
'============================================================================
LOCATE 1, 1: COLOR 7
PRINT "Mit POKE kann der Smilie einfach so ge-"
PRINT "zeichnet werden. Wenn man die schwarzen"
PRINT "Bildpunkte wegläßt, wird er automatisch"
PRINT "transparent. Natürlich muß der Hinter-"
PRINT "grund immer wieder hergestellt werden."
LOCATE 13, 10: PRINT "Das ist die Testzeile"
DIM Hintergrund%(8, 7) '---> Feld für Hintergrund
DEF SEG = &HA000
YBew = 96
FOR XBew = 300 TO 20 STEP -1 '---> Bewegungsschleife
RESTORE Daten
FOR Y = 0 TO 7
'---> merke Hintergrund
FOR X = 0 TO 8
Hintergrund%(X, Y) = PEEK(XBew + X + ((Y + YBew) * 320))
NEXT
NEXT
FOR Y = 0 TO 7
'---> Smilie - Schleife
FOR X = 0 TO 8
READ F%
'---> lese Grafikdaten
IF F% > 0 THEN POKE XBew + X + ((Y + YBew) * 320), F%
NEXT
NEXT
FOR Pause = 0 TO 10000: NEXT '---> ein Päuschen
FOR Y = 0 TO 7
'---> Hintergrund wiederherstellen
FOR X = 0 TO 8
POKE XBew + X + ((Y + YBew) * 320), Hintergrund%(X, Y)
NEXT
NEXT
NEXT
DEF SEG
LOCATE 20, 1
PRINT "Geht, ist aber sehr"
PRINT "umständlich und langsam.";
COLOR 14: PRINT "Bitte Taste drücken."
WHILE INKEY$ = "": WEND
'============================================================================
' Und nun eine Routine mit PUT.
'============================================================================
CLS
DEF SEG = &HA000
RESTORE Daten '---> 1. Das Objekt zeichnen und mit GET in ein Feld lesen
'---> 2. gleichzeitig ein Negativbild des Objekts herstellen
FOR Y = 0 TO 7
FOR X = 0 TO 8
READ F%
POKE X + (Y * 320), F%
IF F% = 0 THEN POKE X + 9 + (Y * 320), 15
NEXT
NEXT
DEF SEG
DIM SmiliePositiv%(37)
'---> Feld für Smilie
DIM SmilieNegativ%(37)
'---> Feld für Smilie
DIM Hintergrund1%(37)
'---> Feld für Hintergrund
GET (0, 0)-(8, 7), SmiliePositiv%
GET (9, 0)-(17, 7), SmilieNegativ%
COLOR 7: PRINT "Nun das selbe in der PUT Version."
LOCATE 13, 10: PRINT "Das ist die Testzeile"
YBew% = 96
FOR XBew% = 300 TO 20 STEP -1
'---> Bewegungsschleife
GET (XBew%, YBew%)-(XBew% + 8, YBew% + 7), Hintergrund1%
PUT (XBew%, YBew%), SmilieNegativ%, AND
PUT (XBew%, YBew%), SmiliePositiv%, OR
FOR Pause = 0 TO 10000: NEXT
'---> ein Päuschen
PUT (XBew%, YBew%), Hintergrund1%, PSET
NEXT
'============================================================================
' Die Daten für ein kleines Bild.
'============================================================================
Daten:
DATA 0,0,0,11,11,0,0,0,0
DATA 0,11,11,0,0,11,11,0,0
DATA 0,11,0,0,0,0,11,0,0
DATA 11,0,15,0,0,15,0,11,0
DATA 11,0,0,0,0,0,0,11,0
DATA 0,11,0,15,15,0,11,0,0
DATA 0,11,11,0,0,11,11,0,0
DATA 0,0,0,11,11,0,0,0,0