Seite 1 von 1

Hilfe, wo ist das Sprite !!!

Verfasst: 24.02.2006 12:48
von Ghosty1967
Hallo Leute...

habe wieder mal ein Problem. Ich möchte gerne ein Sprite in einem
Fenster darstellen und benutze dazu folgenden Code...

Code: Alles auswählen

If InitSprite()
  If OpenWindow(0,10,10,400,400,#PB_Window_SystemMenu,"Test")
    If OpenWindowedScreen(WindowID(0),10,10,380,380,0,0,0)
      CatchSprite(0,?SPRITE1)
    EndIf
  EndIf
EndIf

Repeat
  EventID=WaitWindowEvent()
  If WindowEvent()=0: Delay(1): EndIf
    ClearScreen(0,0,0) 
    If StartDrawing(ScreenOutput())
      DisplaySprite(0, 50, 50) 
      StopDrawing()
    EndIf 
    FlipBuffers() 
Until EventID=#PB_Event_CloseWindow

DataSection
SPRITE1: IncludeBinary "spritea.bmp"
EndDataSection
Ich bekomme zwar keinerlei Fehlermeldungen vom Debugger, aber ich
bekomme auch das Sprite, welches ich hier "catche" nicht dargestellt !
Wenn ich das ganze auf einen Screen anwende funktionierts.

Was mache ich denn falsch ?! Könnte mir einer den Code ändern und
mir erklären, wo der Wurm sich verkrochen hat ;)

Thx... ghosty[/code]

Verfasst: 24.02.2006 13:02
von KTX82
Das DisplaySprite darf nicht zwischen Start/Stop-Drawing stehen. Dort dürfen nur die Befehle aus der 2Ddrawing Library rein. Alle Sprite Befehle müssen außerhalb stehen. Egal ob oben drüber oder unten drunter oder allein ohne irgendwelche 2Ddrawing :wink:
Das ist jetzt mal so das einzige was mit aufgefallen ist. Probier es mal aus.

Verfasst: 24.02.2006 13:04
von Kaeru Gaman
nun, vielleicht ist WindowEvent nicht Null, wenn nix passiert...? 9_9"

...aber spar dir ruhig das start/stop-drawing, sprites sind keine draws,
früher hat das noch nicht einmal funktioniert, wundert mich dass es das jetzt tut...
(<- ok, da war KTX schneller)
ich dachte nur, weil du sagtest, aufm screen klappts..
oder hast du da kein Drawing drumrum gehabt?

Verfasst: 24.02.2006 13:23
von Ghosty1967
Also einfach so...

Code: Alles auswählen

If InitSprite() 
  If OpenWindow(0,10,10,400,400,#PB_Window_SystemMenu,"Test") 
    If OpenWindowedScreen(WindowID(0),10,10,380,380,0,0,0) 
      CatchSprite(0,?SPRITE1) 
    EndIf 
  EndIf 
EndIf 

Repeat 
  EventID=WaitWindowEvent() 
  ClearScreen(0,0,0) 
  DisplaySprite(0, 50, 50) 
  FlipBuffers() 
Until EventID=#PB_Event_CloseWindow 

DataSection 
SPRITE1: IncludeBinary "spritea.bmp" 
EndDataSection
..ich probier das mal ![/code]