Code: Alles auswählen
#SPRITECX = 60
#SPRITECY = 60
#SPRITENUM = 15
InitSprite() : InitKeyboard()
OpenWindow(0,0,0,640,480,"untitled",#WS_SYSMENU | #WS_CAPTION | 1)
OpenWindowedScreen(WindowID(0),0,0,640,480,0,0,0)
LoadFont(0,"Arial Black",25)
For i=0 To #SPRITENUM-1
CreateSprite(i,#SPRITECX,#SPRITECY)
StartDrawing(SpriteOutput(i))
DrawingFont(FontID(0))
DrawingMode(1)
Box(1,1,#SPRITECX-2,#SPRITECY-2,#Red)
DrawText(#SPRITECX/2-TextWidth(Str(i+1))/2,#SPRITECY/2-TextHeight(Str(i+1))/2,Str(i+1))
StopDrawing()
Next
Structure SPRITE
ID.w
X.w
Y.w
EndStructure
Global NewList spr.SPRITE()
Procedure SpriteOverlap(X.w,Y.w)
ForEach spr()
If SpriteCollision(0,X,Y,0,spr()\X,spr()\Y)
ProcedureReturn 1
EndIf
Next
ProcedureReturn 0
EndProcedure
Repeat
X = Random(640 - #SPRITECX)
Y = Random(480 - #SPRITECY)
If SpriteOverlap(X,Y) = 0
AddElement(spr())
spr()\ID = CountList(spr()) -1
spr()\X = X
spr()\Y = Y
EndIf
Until CountList(spr()) = #SPRITENUM
Repeat
EventID = WindowEvent()
ClearScreen($CCCCCC)
ExamineKeyboard()
ForEach spr()
DisplaySprite(spr()\ID,spr()\X ,spr()\Y)
Next
FlipBuffers()
Until KeyboardPushed(1) Or EventID = 16