Einstiegsfrage: 2D
Verfasst: 03.07.2008 13:47
Hallo,
aufgrund einer Anforderung aus dem Bereich muss ich eine Art interaktive Präsenation eines Tools erstellen. Ich hab mich dazu das erste mal mit 2D und animierten Geschichten befasst. Leider habe ich schon nach 2 Minuten das erste Problem
Was macht der Code?
Der Code arbeitet nur mit Images. Der Code zeigt ein Fenster an und bewegt ein Sprite ("Mauszeiger") von A nach B. Dann wird ein ein Klick gezeigt, der Button wird eingedrückt und ein neues Fenster öffnet sich. Der Mauszeiger bewegt sich wie gewollt von A nach B, aber ab dem Verlassen der erste Schleife
passiert nichts mehr. Der anschließende Code wird zudem auch nicht mehr ausgeführt:
obwohl PB den Code durchläuft. Da ist bestimmt nen Fehler von mir drinnen .... Vielleicht könnt ihr mal drüber schauen.
aufgrund einer Anforderung aus dem Bereich muss ich eine Art interaktive Präsenation eines Tools erstellen. Ich hab mich dazu das erste mal mit 2D und animierten Geschichten befasst. Leider habe ich schon nach 2 Minuten das erste Problem

Code: Alles auswählen
If InitSprite() = 0 Or InitKeyboard() = 0
MessageRequester("Error", "Can't open DirectX 7 or later", 0)
End
EndIf
If OpenWindow(24,0,0,798,473,"Interaktive Präsentation",#PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_ScreenCentered)
If OpenWindowedScreen(WindowID(24),0,0,798,473,0,0,0)
If StartDrawing(ScreenOutput())
DrawImage(CatchImage(0,?Bild_1),0,0)
StopDrawing()
EndIf
CreateSprite(0,13,22)
If StartDrawing(SpriteOutput(0))
DrawImage(CatchImage(0,?Bild_8),0,0)
StopDrawing()
EndIf
CreateSprite(3,13,22)
If StartDrawing(SpriteOutput(3))
DrawImage(CatchImage(2,?Bild_7),0,0)
StopDrawing()
EndIf
Else
MessageRequester("Error", "Can't open windowed screen!", 0)
End
EndIf
direction = 5
x=200
Repeat
Event.l = WindowEvent()
FlipBuffers()
ClearScreen(RGB(0,0,0))
If StartDrawing(ScreenOutput())
DrawImage(CatchImage(0,?Bild_1),0,0)
StopDrawing()
EndIf
TransparentSpriteColor(0,RGB(255,0,255))
DisplayTransparentSprite(0,x,245)
x+direction
If x > 320
Event=1
ElseIf x < 0
direction = 5
EndIf
Delay(1)
Until Event=1
Delay(1000)
FlipBuffers()
ClearScreen(RGB(0,0,0))
If StartDrawing(ScreenOutput())
DrawImage(CatchImage(0,?Bild_1),0,0)
StopDrawing()
EndIf
TransparentSpriteColor(3,RGB(255,0,255))
DisplayTransparentSprite(3,150,245)
Delay(1000)
EndIf
End
Bild_1:IncludeBinary "_1.bmp"
Bild_2:IncludeBinary "_2.bmp"
Bild_3:IncludeBinary "_3.bmp"
Bild_7:IncludeBinary "_7.bmp"
Bild_8:IncludeBinary "_8.bmp"
Bild_9:IncludeBinary "_9.bmp"
Bild_10:IncludeBinary "_10.bmp"
Der Code arbeitet nur mit Images. Der Code zeigt ein Fenster an und bewegt ein Sprite ("Mauszeiger") von A nach B. Dann wird ein ein Klick gezeigt, der Button wird eingedrückt und ein neues Fenster öffnet sich. Der Mauszeiger bewegt sich wie gewollt von A nach B, aber ab dem Verlassen der erste Schleife
Code: Alles auswählen
Until Event=1
Delay(1000)
passiert nichts mehr. Der anschließende Code wird zudem auch nicht mehr ausgeführt:
Code: Alles auswählen
FlipBuffers()
ClearScreen(RGB(0,0,0))
If StartDrawing(ScreenOutput())
DrawImage(CatchImage(0,?Bild_1),0,0)
StopDrawing()
EndIf
TransparentSpriteColor(3,RGB(255,0,255))
DisplayTransparentSprite(3,150,245)
Delay(1000)