Und hier noch mal eine PB-Hilfe für den OpenWindowScreen etwas abgewandelt, um zu zeigen, wie eine Welt aussehen könnte.
Code: Alles auswählen
; Autor Folker Linstedt
; 2007|06|16
;/ PB-Hilfe
If InitSprite() = 0
MessageRequester("Error", "Can't open screen & sprite enviroment!", 0)
End
EndIf
;/ PB-Hilfe
If OpenWindow(0, 0, 0, 400, 400, "A screen in a window...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(0))
ButtonGadget(0, 350, 370, 45, 20, "Quit")
ScrollBarGadget(1, 10, 370, 200, 20, 0, 100, 10)
ScrollBarGadget(2, 370, 10, 20, 200, 0, 100, 10,#PB_ScrollBar_Vertical)
ButtonGadget(0, 350, 370, 45, 20, "Quit")
ButtonGadget(0, 350, 370, 45, 20, "Quit")
EndIf
If OpenWindowedScreen(WindowID(0), 0, 0, 320, 320, 0, 0, 0)
;/ Mein Teil
Dim Sprites(15,15)
For iy=0 To 15 ; die Sprites zu erstellen dauert etwas
For ix=0 To 15
Sprites(ix,iy)=16*iy+ix ; es können Sprites neu erstellt werden. Es müssen also nicht 400 verschiedene Sprites sein.
CreateSprite(Sprites(ix,iy),32,32)
StartDrawing(SpriteOutput(Sprites(ix,iy)))
Box(0,0,32,32,RGB(Random(255),Random(255),Random(255)))
StopDrawing()
Next
Next
Dim Welt(100,100)
For iy=0 To 100 ; die Sprites zu erstellen dauert etwas
For ix=0 To 100
Welt(ix,iy)=Random(255)
Next
Next
;/
Else
MessageRequester("Error", "Can't open windowed screen!", 0)
End
EndIf
EndIf
Repeat
Repeat
;Event = WindowEvent()
Event = WaitWindowEvent(50) ; 200 ist doch etwas zu langsam
Select Event
Case #PB_Event_Gadget
GadgetNr=EventGadget()
If GadgetNr = 0
End
EndIf
;/ Meins
If GadgetNr=1
xxx=GetGadgetState(1)
Debug xxx
EndIf
If GadgetNr=2
yyy=GetGadgetState(2)
Debug yyy
EndIf
;/
Case #PB_Event_CloseWindow
End
EndSelect
;/ Meins
If WindowMouseX(0)>-1 And WindowMouseX(0)<320 And WindowMouseY(0)>-1 And WindowMouseY(0)<320
SetWindowTitle(0,"X : "+Str(WindowMouseX(0)/32+GetGadgetState(1))+", Y: "+Str(WindowMouseY(0)/32+GetGadgetState(2)))
EndIf
;/
Until Event = 0
;/ Meins
;ClearScreen(RGB(0, 0, 0))
For iy=0 To 9
For ix=0 To 9
DisplaySprite(Welt(ix+xxx,iy+yyy),32*ix,32*iy)
Next
Next
;/
; Delay(1) ; Auf Anraten von ts-soft
FlipBuffers()
ForEver