Referenzhandbuch |
Kapitel 29 |
BLITZ ;gehe in den Blitzmodus Slice 0,44,3 ;setze Slice 0 MouseWait
;Programmbeispiel für das Anzeigen einer Bitmap im Slice BLITZ ;Gehe in den Blitzmodus BitMap 0,320,DispHeight,3 ;setze eine 8 Farben Bitmap Cls 2 ;fülle die Bitmap mit Farbe 2 Slice 0,44,3 ;setze ein Slice Show 0 ;zeige Bitmap 0 im Slice MouseWait
;ein kleines Slice-Programmbeispiel
BLITZ ;Blitzmodus an
BitMap 0,320,DispHeight,3 ;setze 8-Farben-Bitmap
Slice 0,44,3 ;setze 1 Slice
Show 0 ;zeige Bitmap 0
For k=1 To 100 ;zeichne 100 Kreise
Circlef Rnd(320),Rnd(DispHeight),Rnd(10)+5,Rnd(7)+1
Next
MouseWait
;Multi Slice-Programmbeispiel ; BLITZ ;Blitzmodus! Yeah! BitMap 0,320,100,3 ;gib mir eine Bitplane Cls 2 ;füll sie mit Farbe 2 BitMapOutput 0 ;und gebe darauf... Print "Hallo - Slice-Magie!" ;unseren Text aus Slice 0,44,160,100,$fff8,3,8,32,320,320 ;Slice 0 einrichten... RGB 1,15,15,15 ;und 2 Farben für Slice 0 ändern RGB 2,8,0,15 Show 0 ;zeige Bitmap 0 Slice 1,146,320,100,$fff9,3,8,32,320,320 ;2. Slice einrichten RGB 1,15,15,0 ;2 Farben für Slice 1 ändern RGB 2,0,8,15 Show 0 ;zeige auch Bitmap 0 MouseWait
| gesetzte Flags | Effekt | Max. BitPlanes |
| $fff8 | Standard-LoRes-Slice | 6 |
| $fff9 | Standard-HiRes-Slice | 4 |
| $fffa | LoRes, Dualplayfield | 6 |
| $fffb | HiRes, Dualplayfield | 4 |
| $fffc | HAM-Slice | nur 6 |
Hier einige Beispiele:
WARNUNG - Das nächste Bit ist nur von Anwender zu benutzen, die nähere Kenntnisse hierzu besitzen.
Flags sind ebenfalls eine Auswahl von individuellen Bit-Flags. Diese Bit-Flags kontrollieren den Aufbau
der Slice-"Copperliste". Es folgt eine Liste der Bitnummern und deren Effekte:
| Bit# | Effekt |
| 15 | Kreiert Copper MOVE BPLCON0 |
| 14 | Kreiert Copper MOVE BPLCON1 |
| 13 | Kreiert Copper MOVE BPLCON2 |
| 12 | Kreiert Copper MOVE DIWSTRT und MOVE DIWSTOP |
| 10 | Kreiert Copper MOVE DDFSTRT und MOVE DDFSTOP |
| 8 | Kreiert Copper MOVE BPL1MOD |
| 7 | Kreiert Copper MOVE BPL2MOD |
| 4 | Kreiert 2 Linien über den Slice |
| 3 | Erlaubt weiches horizontales Scrolling |
| 2 | HAM-Slice |
| 1 | Dualplayfield-Slice |
| 0 | HiRes-Slice - Default ist LoRes |
Der Bitplanes-Parameter kann auch genutzt werden, um "nur gerade" oder
"nur ungerade" Bitplanes zuzulassen. Dies erlaubt es, im Dualplayfieldmodus verschiedene Vorder- oder Hintergrund-Bitmaps
anzuzeigen, ohne die andere zu zerstören.
Für Nur-Vordergrund-Bitplanes wird Bit 15, für Nur-Hintergrund-Bitplanes Bit 14 des
Bitplanes-Parameters gesetzt.
Beispiel:
;
; Slice mit Kreis - Programmbeispiel
;
BLITZ ;Auf Wiedersehen OS!
BitMap 0,320,200,3 ;mach eine Bitmap
Circlef 160,100,50,2 ;gib mir die Kugel
Slice 0,44,320,200,$fff8,3,8,32,320,320 ;setze einen Slice
Show 0 ;zeige die Bitmap
MouseWait
siehe auch: Use Slice, Show, FreeSlices
Befehl: Use Slice
Syntax: Use Slice Slicenummer
Modus: Amiga/Blitz
Erklärt den Slice Slicenummer als aktuell zu benutzenden Slice. Dies benötigen Befehle wie
Show, ShowF, ShowB und
BlitzModus-RGB.
Beispiel:
BLITZ ;Blitzmodus
BitMap 0,320,200,3 ;BitMap setzen
Circlef 160,100,80,2 ;und einen Kreis malen
Slice 0,44,320,100,$fff8,3,8,8,320,320 ;ein Slice
Slice 1,44,320,146,$fff8,3,8,8,320,320 ;ein anderes
Use Slice 0 ;benutzte das erste
Show 0
RGB 2,15,15,0 ;RGB/Show betrifft Slice 0
Use Slice 1 ;benutze Slice 1
Show 0
RGB 2,0,8,15 ;Rgb und Show betriffen nun dieses
MouseWait
siehe auch: Slice, FreeSlices
BLITZ ;gehe in den Blitzmodus
BitMap 0,640,200,2 ;Bitmap 0 erzeugen
Circlef 320,100,80,1 ;und auf ihr zwei Kreise zeichnen
Circlef 320,100,40,2
Slice 0,44,320,200,$fff8,2,8,4,640,640 ;Slice 0 bestimmen
For k=0 To 319 ;Schleifenstart
VWait ;auf den Anfang des Frames warten
Show 0,k,0 ;Bitmap 0 anzeigen
Next ;Schleifenende
MouseWait
BLITZ ;Blitzmodus!
BitMap 0,640,200,2 ;Bitmap erstellen
Circlef 320,100,80,1 ;und zwei Kreise zeichnen
Circlef 320,100,40,2
Slice 0,44,320,200,$fffa,4,8,32,640,640 ;Dual-Playfield-Slice!
ShowB 0,160,0 ;Zeige Hintergrund-Bitmap
For k=0 To 319 ;Schleifenstart
VWait ;auf Vertical Blank warten
ShowF 0,k,0 ;Vordergrund-Bitmap
Next ;Schleifenende
MouseWait
BLITZ ;Blitzmodus
BitMap 0,640,200,2 ;Bitmap erstellen
Circlef 320,100,80,1 ;und zwei Kreise zeichnen
Circlef 320,100,40,2
Slice 0,44,320,200,$fffa,4,8,32,640,640 ;Dual-Playfield-Slice!
ShowF 0,160,0 ;Zeige Vordergrund-Bitmap
For k=0 To 319 ;Schleifenstart
VWait ;auf Vertical Blank warten
ShowB 0,k,0 ;Hintergrund-Bitmap
Next ;Schleifenende
MouseWait
BLITZ ;ab in den Blitzmodus!
BitMap 0,320,200,1 ;eine leere BitMap
Slice 0,44,320,200,$fff8,1,8,32,320,320 ;Slice erzeugen
Show 0 ;BitMap anzeigen
For k=0 To 15 ;Schleifenstart
ColSplit 0,k,k,k,k*17 ;setze Hintergrungregister an
;eine kluge Y-Position
Next ;Schleifenende
MouseWait
BLITZ ;Blitzmodus
#BPLMOD1=$108 ;ein paar kluge Sachen
#BPLMOD2=$10A ;dto.
BitMap 0,320,400,3
For k=7 To 1 Step -1
Circlef 160,250,k*10,k ;male die SONNE!
Next
Slice 0,44,320,200,$fff8,3,8,32,320,320 ;bestimme das Slice
RGB 0,0,8,15
For k=1 To 7
RGB k,15,k*2,0
Next
ColSplit 0,0,0,8,150 ;schwere Farbenaufteilung
co$=Mki$(#BPLMOD1)+Mki$(-122)
co$+Mki$(#BPLMOD2)+Mki$(-122)
CustomCop co$,150+44 ;Custom Copper-Anweisungen
For k=0 To 199
VWait
Show 0,0,k ;und die Sonne geht auf!
Next
MouseWait
Slice 0,44,3
For k=0 To CopLen-1 Step 4
NPrint Hex$(k),":",Hex$(Peek.l(CopLoc+k))
Next
MouseWait