Seite 1 von 1

sprite flackern beheben

Verfasst: 03.09.2010 07:35
von Klaus_1963
Hallo

Eigentlich eine ganz einfache Aufgabe: ich möchte ein Sprite von a nach b wandern lassen. Als Vorlage habe ich ein Beispiel aus der PB-Hilfe genommen. Allerdings stelle ich immer nach etwa 320 Pixel ein starkes Flackern fest. Wie kann ich dieses Flackern vermeiden, so, dass sich das Sprite "glatt" von a nach b bewegt?

Hier der Quelltext, der von mir leicht abgeändert wurde:

Code: Alles auswählen

;
; ------------------------------------------------------------
;
;   PureBasic - Sprite example file
;
;    (c) 2002 - Fantaisie Software
;
;   !!! modified for sprite test by KN !!!
;
; ------------------------------------------------------------
;

If InitSprite() = 0 Or InitKeyboard() = 0
  MessageRequester("Error", "Sprite system can't be initialized", 0)
  End
EndIf

If InitSprite3D() = 0
  MessageRequester("Error", "Sprite3D system can't be initialized correctly", 0)
  End
EndIf

;
; Now, open a 1920*1080 - 32 bit screen
;

If OpenScreen(1920,1080, 32, "Sprite")

  ; Load sprite
  
  LoadSprite(0, #PB_Compiler_Home + "examples/sources/data/PureBasicLogo.bmp", #PB_Sprite_Texture)
  
  CreateSprite3D(0, 0)
  CreateSprite3D(1, 0)
    
  Sprite3DQuality(#PB_Sprite3D_BilinearFiltering)
  
  TransparentSpriteColor(0, RGB(255, 0, 255)) ; Our pink is transparent :)

  Repeat
    
    ; Inverse the buffers (the back become the front (visible)... And we can do the rendering on the back)
    
    FlipBuffers()
    
    ClearScreen(RGB(0,50,128))
    ;
    ; Draw our sprite
    ;
      Start3D()
        DisplaySprite3D(0, x+100, 100, x)
        ;
        ; Zoom..
        ;
        ZoomSprite3D(1, x, x/6)
        RotateSprite3D(1, x, 0)
        DisplaySprite3D  (1, x, 100, x)
      Stop3D()
  
    
    ExamineKeyboard()
    
    x+1
  Until KeyboardPushed(#PB_Key_Escape)
  
Else
  MessageRequester("Error", "Can't open a 1920*1080 - 32 bit screen !", 0)
EndIf

End   

Wo muss ich "drehen"?

Vielen Dank für Eure Hilfe im Voraus

Klaus

Re: sprite flackern beheben

Verfasst: 03.09.2010 08:25
von Klaus_1963
Tja: so ist das, wenn man wieder mal mit dem Bauch denkt :oops: - die Lösung ist ganz einfach:

Sobald der Wert für die Transparenz über 255 geht, flackert es. Man muss also nur aufpassen, dass die Werte für Transparenz <= 255 bleiben.

Grüsse Klaus