[id] = planar.CreateSprite(id, brushid)
brushid
angegebenen Pinsel in ein
Hardware-Sprite um und weist ihm den Identifikator id
zu. Wenn Sie im Argument id
Nil
angeben, wählt planar.CreateSprite()
automatisch einen freien Identifikator
für diesen Sprite und gibt ihn zurück.
Beachten Sie, dass der Pinsel, den Sie an diesen Befehl übergeben, die Sprite-Einschränkungen der Amiga-Hardware respektieren muss. Das bedeutet, dass er sich an die folgenden Regeln halten muss:
Beachten Sie auch, dass die Amiga-Hardware nur 8 Sprite-DMA-Kanäle unterstützt. Jeder Kanal kann ein 4-Farben-Sprite haben. Die 8 Sprite-DMA-Kanäle sind mit den folgenden Farbregistern verbunden:
Zwei Kanäle können kombiniert werden, um ein Sprite mit 16 Farben zu erstellen. Das bedeutet, wenn Sie Sprites mit 16 Farben verwenden, können Sie nur 4 statt 8 haben, da ein Sprite mit 16 Farben zwei Sprite-DMA-Kanäle blockiert. 16 Farbsprites sind an die Farbregister 16 bis 31 gebunden (Farbe 16 ist transparent).
Beachten Sie, dass planar.CreateSprite()
den Sprite nicht sofort einem
Sprite-DMA-Kanal zuordnet. Dies ist die Aufgabe von planar.MapSprite().
Somit können Sie mit planar.CreateSprite()
mehr Hardware-Sprites erstellen,
als Sprite-DMA-Kanäle vorhanden sind. Dies ist beispielsweise nützlich, wenn
Sie Sprites animieren möchten. In diesem Fall könnten Sie zuerst alle
Animationsframes mit planar.CreateSprite()
in Hardware-Sprites konvertieren
und dann die einzelnen Animationsframes vor/nach dem Anzeigen mit
planar.MoveSprite() mappen und unmapen.
Nil
für die automatische ID-AuswahlNil
als Argument 1 übergeben (siehe oben)@REQUIRE "plananarama", {PaletteMode = True} @DISPLAY {Palette = #PALETTE_AGA} SetPaletteMode(#PALETTEMODE_PEN) SetFillStyle(#FILLCOLOR) CreateBrush(1, 64, 64, {Palette = #PALETTE_GRAY4}) SelectBrush(1) For Local k = 0 To 2 SetDrawPen(k + 1) Box(k * 21, 0, 21, 64) Next EndSelect planar.CreateSprite(1, 1) planar.MapSprite(1) Repeat planar.MoveSprite(1, MouseX(), MouseY()) planar.VWait() ForeverDer obige Code erstellt ein 4-Farben-64x64-Sprite, ordnet ihn einem Sprite-DMA-Kanal zu und bewegt ihn dann dorthin, wo sich der Mauszeiger befindet. Beachten Sie, dass es keine Rolle spielt, dass wir
#PALETTE_GRAY4
an CreateBrush()
übergeben, da der Hardware-Sprite die Palette des
Bildschirms verwendet, also verwenden wir einfach #PALETTE_GRAY4
als Dummy,
um CreateBrush()
mitzuteilen, dass es uns ein 16-Farben-Sprite geben soll.