Referenzhandbuch

Kapitel 29


Kapitel 28 Inhaltsverzeichnis Kapitel 30

Slices


Slices sind AmiBlitz2-Objekte, die das Herz des machtvollen Blitzmodus-Grafiksystems bilden. Durch die Benutzung von Slices sind verblüffende und wundervolle Grafikeffekte durchführbar, Effekte, die im normalen Amigamodus nicht möglich sind. Dies beinhaltet viele Dinge wie Dual Playfield-Displays, weiches Scrolling, Double Buffering und mehr!

Der größte Vorteil des Blitzmodus ist die flexible Kontrolle des Amiga Display. Diese Kontrolle wird durch die Anwendung von Slices ermöglicht.

Ein Slice kann als selbständige, rechteckige Fläche eines Displays bezeichnet werden, die alle Informationen über Displaymodus, Farbpalette, Sprites und Bitplanes beinhaltet. Daher ist es möglich, mehrere Slices gleichzeitig auf unterschiedlichen Abschnitten des Displays mit unterschiedlicher Auflösung, verschiedenen Farben usw. darzustellen.

Bei der Anwendung von Slices müssen folgende Dinge beachtet werden:



Hier ein einfaches Beispiel für das Setzen eines Slices im Blitzmodus:

  BLITZ         ;gehe in den Blitzmodus
  Slice 0,44,3  ;setze Slice 0
  MouseWait


Dieses Beispiel setzt ein LowRes 8-Farben Slice - 320 Pixel breit und 200 oder 256 Pixel hoch, je nachdem ob Sie einen NTSC- oder PAL-Amiga verwenden.

Wenn Sie das obige Beispiel eingetippt und compiliert haben, werden Sie feststellen, daß sich einige zufällige Grafiken im Display befinden. Der Grund hierfür ist, daß Slices nur kontrollieren, wie das Display angezeigt wird, nicht aber was aktuell angezeigt wird. Um Grafik in einem Slice zu nutzen, benötigen Sie eine Bitmap und eine Form des Show-Befehls.

  ;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


Wenn eine Bitmap so initialisiert und mit Show angezeigt wird, können nun alle verfügbaren Grafikkommandos auf der Bitmap benutzt werden. Nachfolgend ein Beispiel, das mit dem Circlef-Befehl arbeitet:

  ;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


Dieses Beispiel ist sehr einfacher Natur, aber es zeigt, mit wie wenig Schritten eine effektvolle Arbeit mit Slices möglich ist.

In den vorangegangenen Beispielen haben wir die Kurzform des Standard-Slice-Befehls benutzt. Diese Kurzform erlaubt aber nur die Nutzung eines aktiven Slices auf dem Display. Möchten Sie mehrere Slices gleichzeitig auf dem Display verwenden, muß das komplexere Slice-Kommando benutzt werden.

Hier ein kurzes Beispiel für Mehrfachslices:

  ;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


Beachten Sie, daß der Text "Hallo - Slice-Magie!" an 2 verschiedenen Plätzen auf dem Display erscheint, obwohl er nur einmal ausgegeben wurde! Dies liegt daran, daß wir für beide Slices dieselbe Bitmap zeigen (Show 0). Auf dieser Bitmap wurde unser Text geschrieben.

Beachten Sie ferner, daß das obere Slice LowRes- und der untere HiRes-Auflösung besitzt.

Und schließlich beachten Sie, daß sich zwischen den beiden Slices ein vertikaler Zwischenraum von 2 Linien befindet.

Hier noch ein letzter, wichtiger Hinweis zu Slices - Slice-Objekte können nicht einzeln aus dem Speicher entfernt werden. Es ist nur möglich, alle vorhandenen Slices zusammen aus dem Speicher zu löschen (FreeSlices-Befehl).

  • Slice
  • Use Slice
  • FreeSlices
  • Show
  • ShowF
  • ShowB
  • ColSplit
  • CustomCop
  • ShowBlitz
  • CopLoc
  • CopLen
  • Display






  • Index

    Befehl: Slice

    Syntax Kurzform: Slice Slicenummer,Y,Flags

    Syntax Standard: Slice Slicenummer,Y,Breite,Höhe,Flags,Bitplanes,Sprites,Farben,Breite1,Breite2


    Der Y-Parameter gilt für beide Formen und legt die Y-Positionen fest, an der der Slice beginnt. Ein Wert von 44 läßt das Slice oben im Bildschirm beginnen (also nicht ein Wert von 0).

    Für die Kurzform gilt folgendes:

    Der Flags-Parameter bestimmt die Farbtiefe des Slice. Möchten Sie einen LowRes-Slice mit Farbtiefe 2 (4 Farben) öffnen, ist Flag = 2. Normalerweise wird ein LowRes-Slice geöffnet. Möchten Sie einen HiRes-Slice öffnen, addieren Sie 8 dazu. Flag = 12 entspricht HiRes mit 16 Farben.

    Die Breite eines Slices, das mit der Kurzform geöffnet wurde, beträgt bei LowRes 320 Pixel und bei HiRes 640 Pixel. Bei Benutzung dieser Syntax wird die Höhe 256 Pixel (PAL) oder 200 Pixel (NTSC) betragen.

    Mehr Möglichkeiten bietet Ihnen die Standardform des Befehls.

    Erklärung der Parameter der Standardform: