Gravitation - von Codemaster von CodeMaster |
Sehr cooler Effekt von Codemaster, bei drücken der linken Maustaste werden alle Punkte von der Maus angezogen, bei der rechten Maustaste streben sie davon. verdammt cool 8) :) [code:1:877532393d] SeedRnd MilliSecs() Dim x#(1000),y#(1000),w#(1000),s#(1000),c(1000) For i = 1 To 1000 x#(i) = Rand(800) y#(i) = Rand(600) w#(i) = Rand(359) s#(i) = Rnd(1,5) c(i) = Rand(100,255) Next Graphics 800,600 SetBuffer BackBuffer() While Not KeyDown(1) Cls mx = MouseX() my = MouseY() Color 255,0,0 Rect mx-5,my,11,1,1 Rect mx,my-5,1,11,1 For i = 1 To 1000 If MouseDown(1) Then wk1# = Winkel#(x(i),y(i),mx,my) Difw# = (wk1# - w#(i)) Mod 360 If DifW# > 0 Then w#(i) = (w#(i) - 359 * 3) Mod 360 If DifW# < 0 Then w#(i) = (w#(i) + 1 * 3) Mod 360 If DifW# > 180 Then w#(i) = (w#(i) - 1 * 6) Mod 360 If DifW# < -180 Then w#(i) = (w#(i) + 369 * 6) Mod 360 ElseIf MouseDown(2) Then wk1# = Winkel#(x(i),y(i),mx,my) Difw# = (wk1# - w#(i)) Mod 360 If DifW# > 0 Then w#(i) = (w#(i) + 359 * 3) Mod 360 If DifW# < 0 Then w#(i) = (w#(i) - 1 * 3) Mod 360 If DifW# > 180 Then w#(i) = (w#(i) + 1 * 6) Mod 360 If DifW# < -180 Then w#(i) = (w#(i) - 369 * 6) Mod 360 End If x#(i) = x#(i) + Cos(w#(i)) * s#(i) y#(i) = y#(i) + Sin(w#(i)) * s#(i) If x#(i) < 0 Then x#(i) = GraphicsWidth() If y#(i) < 0 Then y#(i) = GraphicsHeight() If x#(i) > GraphicsWidth() Then x#(i) = 0 If y#(i) > GraphicsHeight() Then y#(i) = 0 Color c(i),c(i),c(i) Oval x#(i)-1,y#(i)-1,2,2,1 Next Flip Wend End Function Winkel#(x1,y1,x2,y2) Dif# = x2 - x1 If Dif# = 0 Then Dif# = 0.001 Alpha# = (ATan((y2 - y1) / Dif#)) Mod 360 If x2 < x1 Then Alpha# = (180 + Alpha#) Mod 360 If (x2 > x1) And (y2 <= y1) Then Alpha# = (360 + Alpha#) Mod 360 If (x2 = x1) And (y2 < y1) Then Alpha# = (180 - Alpha#) Mod 360 Return Alpha# End Function Function Abstand#(x1,y1,x2,y2) Temp# = Sqr((x2 - x1)^2 + (y2 - y1)^2) Return Temp# End Function [/code:1:877532393d] |