Was ist bitte der Unterschied beim Buffer vom Sprite und vom Canvas?
Danke.
Gruss
Hier beim Sprite wird der rote Pixel von links Oben nach rechts Oben gesetzt
und geht dann in die nächtse Zeile und der Zähler muß um 4 erhöht werden :
Code: Alles auswählen
Global zaehler.l
InitSprite()
OpenWindow(0,0,0,800,600,"sprite",#PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0),10,10,200,200,0,0,0)
CreateSprite(1,256,256,#PB_Sprite_PixelCollision)
StartDrawing(SpriteOutput(1))
Box(0,0,256,256,RGB(255,255,255))
StopDrawing()
Repeat
Event.l = WindowEvent()
StartDrawing(SpriteOutput(1))
Buffer = DrawingBuffer()
Pitch = DrawingBufferPitch()
PixelFormat = DrawingBufferPixelFormat()
StopDrawing()
If GetAsyncKeyState_(#VK_Q)
PokeL(buffer+zaehler,$ff0000)
zaehler+4
EndIf
DisplaySprite(1,0,0)
FlipBuffers()
Until Event = #PB_Event_CloseWindow
End
und geht dann in die nächtse Zeile nach Oben und der Zähler muß um 3 erhöht werden.
Beim Canvas habe ich keinen guten Ausgangspunkt wie beim Sprite :
Code: Alles auswählen
Global zaehler.l
Enumeration
#Window_0
EndEnumeration
OpenWindow(#window_0, 10,10, 520, 300, "Canvas")
CanvasGadget(1, 10, 10, 200, 200)
Repeat
Event = WaitWindowEvent()
StartDrawing(CanvasOutput(1))
Buffer = DrawingBuffer()
Pitch = DrawingBufferPitch()
PixelFormat = DrawingBufferPixelFormat()
StopDrawing()
If GetAsyncKeyState_(#VK_Q)
PokeL(buffer+zaehler,$ff0000)
zaehler+3
Delay(10)
EndIf
Select Event
Case #PB_Event_Gadget
EventGadget = EventGadget()
EventType = EventType
Case #PB_Event_CloseWindow
EventWindow = EventWindow()
If EventWindow = #Window_0
CloseWindow(#Window_0)
Break
EndIf
EndSelect
ForEver