Image auf ein Sprite zeichnen. Geht das ?
Verfasst: 13.07.2005 18:07
Hallo,
ich hatte vor, ein Image zu laden und das dann auf ein Sprite zu zeichnen neben einigen anderen Dingen, z.B. Text mit DrawText.
Leider scheint das nicht zu funktionieren. Das Bild wird einfach ignoriert.
Hat jemand eine Idee?
Andi
ich hatte vor, ein Image zu laden und das dann auf ein Sprite zu zeichnen neben einigen anderen Dingen, z.B. Text mit DrawText.
Leider scheint das nicht zu funktionieren. Das Bild wird einfach ignoriert.
Hat jemand eine Idee?
Andi
Code: Alles auswählen
Global id0x.l ,id0y.l, id1x.l ,id1y.l
id0x = 200
id0y = 200
If InitSprite() = 0 Or InitKeyboard() = 0 Or InitMouse() = 0
MessageRequester("System-Error","Kann DirectX nicht laden",0)
Else
;MessageRequester("Kontrolle","DirectX okay.",0)
EndIf
WinProperties.l = #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered | #PB_Window_SizeGadget
If OpenWindow(0, 5, 5, 1024, 1024/16*9+2, WinProperties , "T-Constructor") = 0
Else
;MessageRequester("Kontrolle","Window okay",0)
ImageID1 = LoadImage(#PB_Any,"testbild.bmp")
;MessageRequester("Kontrolle",Str(ImageID1),0)
If OpenWindowedScreen(WindowID(),4, 50, 1024 - 85, 1024/16*9 - 74, 0, 0, 0) = 0
Else
SpriteID0 = CreateSprite(#PB_Any, 20, 20)
If StartDrawing(SpriteOutput(SpriteID0))
DrawingMode(1 | 4)
FrontColor(230,230,230)
Box(1,1,19,19)
StopDrawing()
EndIf
SpriteID1 = CreateSprite(#PB_Any, 300, 300)
If StartDrawing(SpriteOutput(SpriteID1))
DrawingMode(1 | 4)
FrontColor(230,230,230)
Box(1,1,299,299)
FrontColor(0,0,100)
;MessageRequester("Kontrolle",Str(ImageID1),0)
DrawImage(ImageID1, 10, 10 )
DrawText("Dieses ist ein Text, der angezeigt wird.")
StopDrawing()
EndIf
Repeat
FlipBuffers(): ClearScreen(255,255,255)
If StartDrawing(ScreenOutput())
;DrawingMode(0)
;FrontColor(255,0,0)
;Box(0, 0, 1024 - 85, 1024/16*9 - 74)
;FrontColor(255,0,255)
;DrawText("Blabla")
ImageID10 = CreateImage(#PB_Any, 50, 50)
DrawImage(ImageID1, 100, 100 )
StopDrawing()
EndIf
;FlipBuffers()
DisplayTransparentSprite(SpriteID1, id1x ,id1y)
DisplayTransparentSprite(SpriteID0, id0x ,id0y)
;DisplayTransparentSprite(SpriteID0, 100, 100)
Delay(1)
id0x = WindowMouseX()
id0y = WindowMouseY()-50
If SpriteCollision(SpriteID0, id0x ,id0y, SpriteID1, id1x ,id1y) And LButtondownOn
SpriteCollisionOn = 1
EndIf
If LButtondownOn And SpriteCollisionOn
;MessageRequester("Kontrolle","Kollision",0)
id0x = WindowMouseX()
id0y = WindowMouseY()-50
id1x = WindowMouseX()
id1y = WindowMouseY()-50
;DisplayTransparentSprite(SpriteID0, id0x ,id0y)
Else
;DisplayTransparentSprite(SpriteID1, WindowMouseX(), WindowMouseY()-50)
;DisplayTransparentSprite(SpriteID0, id0x ,id0y)
EndIf
EventID.l = WindowEvent()
If EventID = #WM_LButtonDown
;MessageRequester("Kontrolle","link. Mousebutton down",0)
LButtondownOn = 1
EndIf
If EventID = #WM_LButtonUp
;MessageRequester("Kontrolle","link. Mousebutton down",0)
LButtondownOn = 0
SpriteCollisionOn = 0
EndIf
If EventID = #PB_Event_CloseWindow
quit = 1
EndIf
Until quit=1
EndIf
EndIf