Das angegebene #Sprite ist nicht initialisiert. Es wird aber doch in der Zeile direkt davor erzeugt, wie kann das also sein
Der Fehler taucht in der Zeile
Code: Alles auswählen
StartDrawing(SpriteOutput(*Particle\Sprite))
Code: Alles auswählen
*Particle\Sprite = CreateSprite(#PB_Any,*Particle\Width,*Particle\Height,#PB_Sprite_AlphaBlending)
Code: Alles auswählen
Procedure paintSingleParticle(*Particle.ParticleStruct)
If *Particle\Sprite = 0
; Erstellt einen leeren Sprite in der passenden Größe
*Particle\Sprite = CreateSprite(#PB_Any,*Particle\Width,*Particle\Height,#PB_Sprite_AlphaBlending)
StartDrawing(SpriteOutput(*Particle\Sprite))
; Allgemeine Einstellungen setzen
BackColor(RGBA(0,0,0,0))
FrontColor(RGB(*Particle\Red,*Particle\Green,*Particle\Blue))
DrawingMode(#PB_2DDrawing_Default)
Select *Particle\ParticleType
Case #PRIMITIVE_CIRCLE
; Kreis zeichnen
Circle(*Particle\Width / 2,*Particle\Height / 2,*Particle\Width / 2)
Case #PRIMITIVE_RECTANGLE
; Rechteck zeichnen
Box(0,0,*Particle\Width,*Particle\Height)
Case #PRIMITIVE_TRIANGLE
; Dreieck zeichnen
Line(*Particle\Width / 2, 0, *Particle\Width / 2, *Particle\Height)
Line(0,*Particle\Height,*Particle\Width / 2, -*Particle\Height)
Line(9,*Particle\Height,*Particle\Width,*Particle\Height)
FillArea(*Particle\Width / 2, *Particle\Height / 2,RGB(*Particle\Red,*Particle\Green,*Particle\Blue))
Case #COMPLEX_SPRITE
; Sprite zeichnen
; Erzeugt eine Kopie für die Resize Aktion
*Particle\Sprite = CopySprite(Images(*Particle\ParticleTexture),#PB_Any,#PB_Sprite_AlphaBlending)
; Skaliert die Größe der Kopie auf die Größe des Partikels
ZoomSprite(*Particle\Sprite,*Particle\Width,*Particle\Height)
EndSelect
StopDrawing()
EndIf
; Rotiert das Sprite Element auf den aktuellen Winkel
RotateSprite(*Particle\Sprite,*Particle\CurrentRotation,#PB_Absolute)
; Zeichnet das Sprite Element
DisplayTransparentSprite(*Particle\Sprite,*Particle\PositionX,*Particle\PositionY,*Particle\Alpha)
EndProcedure