Seen in the next topic physics. I've been doing DLL for the final version of my game. Its no finished. You may use it. Just a clash of balls.
Code: Select all
#B_Num=10: #B_Size=64: ScrSizeX=1024: ScrSizeY=768: MyDelay=20: deltaKEnergy.f=0.05: BitPow=150
InitMouse(): InitSprite(): InitKeyboard(): InitSound(): OpenScreen(ScrSizeX, ScrSizeY, 32, "")
Structure Ball: X.f: Y.f: SX.f: SY.f: E.f: Weight.f: R.f: EndStructure: Dim Ball.ball(#B_Num)
Prototype.l ProtoCircImpact( Array Ball.Ball(1),B_Num): Prototype.l ProtoCircOutScreen( Array Ball.Ball(1),B_Num,ScrSizeX,ScrSizeY)
OpenLibrary(0, "D:\PUREBASIC\StarTravel\SM_Engine84.dll"): CircImpact.ProtoCircImpact = GetFunction(0, "CircImpact"): CircOutScreen.ProtoCircOutScreen = GetFunction(0, "CircOutScreen")
For C=1 To #B_Num: Ball(C)\X=400+Random(300): Ball(C)\Y=150+Random(300);+C*#B_Size+4:
Ball(C)\E=1: Ball(C)\Weight=1: Ball(C)\R=#B_Size/2: CreateSprite(C,#B_Size,#B_Size): StartDrawing(SpriteOutput(C)): Rcol=Random(255): Bcol=Random(255): Gcol=Random(255)
For k=#B_Size To 1 Step -2: Circle(#B_Size/2,#B_Size/2,k/2,RGB(255-k*196/#B_Size,Gcol,Bcol)): Next: StopDrawing(): Next
Ball(0)\X=#B_Size: Ball(0)\Y=ScrSizeY/2+#B_Size/2: Ball(0)\E=1: Ball(0)\Weight=1: Ball(0)\R=#B_Size/2: CreateSprite(0,#B_Size,#B_Size): StartDrawing(SpriteOutput(0))
For k=#B_Size To 1 Step -2: Circle(#B_Size/2,#B_Size/2,k/2,RGB(255-k*196/#B_Size,255-k*196/#B_Size,255-k*196/#B_Size)): Next: StopDrawing()
CreateSprite(1000,24,24): StartDrawing(SpriteOutput(1000)): DrawingMode(4): Circle(12,12,12,RGB(250,0,0)): Circle(12,12,6,RGB(250,0,0)): StopDrawing()
Repeat: FlipBuffers(): ClearScreen(0): ExamineKeyboard(): ExamineMouse(): MsX+MouseDeltaX(): MsY+MouseDeltaY()
If MouseButton(1): kX=Abs(Ball(0)\X-MsX)/BitPow: kY=Abs(Ball(0)\Y-MsY)/BitPow
If Ball(0)\X>MsX: Ball(0)\SX=Ball(0)\SX-kX: Else: Ball(0)\SX=Ball(0)\SX+kX: EndIf: If Ball(0)\Y>MsY: Ball(0)\SY=Ball(0)\SY-kY: Else: Ball(0)\SY=Ball(0)\SY+kY: EndIf: EndIf
CircOutScreen(@Ball(),#B_Num,ScrSizeX,ScrSizeY): CircImpact(@Ball(),#B_Num)
For C=0 To #B_Num: DisplayTransparentSprite(C,Ball(C)\X-#B_Size/2,Ball(C)\Y-#B_Size/2): Next: DisplayTransparentSprite(1000,MsX-12,MsY-12)
Delay(MyDelay): Until KeyboardReleased(#PB_Key_Escape)
DLL :
http://rapidshare.com/files/440893372/SM_Engine84.dll
Need other filehosting say it.