CreateSprite()

Syntax

Ergebnis = CreateSprite(#Sprite, Breite, Höhe [, Flags])
Beschreibung
Erstellt ein leeres Sprite mit den angegebenen Dimensionen. SpriteOutput() kann verwendet werden, um auf dem Sprite zu Zeichnen.

Parameter

#Sprite Eine Nummer zum Identifizieren des neuen Sprites. #PB_Any kann verwendet werden, um diese Zahl automatisch zu generieren.
Breite, Höhe Die Größe des neuen Sprites (in Pixel).
Flags (optional) Dies kann eine Kombination der folgenden Werte (verknüpft mit dem '|' Operator) sein:
  #PB_Sprite_PixelCollision: Fügt spezielle Informationen zum Handling der Pixel-Kollision mittels SpritePixelCollision() hinzu.
  #PB_Sprite_AlphaBlending : Das Sprite wird mit per Pixel Alpha-Kanal Unterstützung erstellt, benötigt
                             für DisplayTransparentSprite().
  #PB_Sprite_Transparent   : Das Sprite wird vollständig transparent erstellt (Alphakanalwert auf 0 gesetzt). Falls verwendet,
                             sollte DrawingMode() bei Verwendung von SpriteOutput() auf #PB_DrawingMode_AllChannels gesetzt werden.

Rückgabewert

Ein Wert ungleich Null, wenn das Sprite erstellt wurde, andernfalls Null. Wenn #PB_Any als #Sprite Parameter verwendet wurde, dann wird im Erfolgsfall die generierte Nummer zurückgegeben.

Anmerkungen

CreateSprite() muss im selben Thread aufgerufen werden, in dem OpenScreen() aufgerufen wurde.

Beispiel: CreateSprite mit Transparenz-Flag

  InitSprite()
   
  OpenWindow(0, 0, 0, 640, 480, "Ein Screen in einem Fenster...", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_ScreenCentered)
  If OpenWindowedScreen(WindowID(0), 0, 0, 640, 480, #True, 0, 0)
    
    CreateSprite(0, 64, 64, #PB_Sprite_AlphaBlending | #PB_Sprite_Transparent)
    If StartDrawing(SpriteOutput(0))
      DrawingMode(#PB_2DDrawing_AllChannels)
      Circle(16, 16, 8, RGBA(255, 0, 0, 255)) ; Opaque red circle
      Circle(32, 32, 8, RGBA(0, 255, 0, 128)) ; Semi transparent green circle
      StopDrawing()
    EndIf
      
    Repeat
      Repeat ; Es ist sehr wichtig, bei jedem Frame alle in der Warteschlange verbliebenen Ereignisse zu verarbeiten
        Event = WindowEvent()
        If Event = #PB_Event_CloseWindow
          End
        EndIf
      Until Event = 0
      
      ClearScreen(RGB(0, 0, 0)) ; Ein schwarzer Hintergrund
      
      DisplayTransparentSprite(0, 300, 200)
      
      FlipBuffers()
    ForEver
        
  Else
    Debug "Fensterbildschirm kann nicht geöffnet werden!"
  EndIf

Siehe auch

GrabSprite(), SpriteOutput()

Unterstützte OS

Alle

<- CopySprite() - Sprite Inhaltsverzeichnis - DisplaySprite() ->