function updateOrbital() { if( !getGUIObjectByName( 'arena' ).hidden ) { g_ballx += g_balldx; g_bally += g_balldy; if (g_ballx > 600) { g_balldx *= -0.9; g_ballx = 600-(g_ballx-600); } else if (g_ballx < 0) { g_balldx *= -0.9; g_ballx = -g_ballx; } if (g_bally > 400) { g_balldy *= -0.9; g_bally = 400-(g_bally-400); } else if (g_bally < 0) { g_balldy *= -0.9; g_bally = -g_bally; } // Gravitate towards the mouse var vect_x = g_ballx-g_mousex; var vect_y = g_bally-g_mousey; var dsquared = vect_x*vect_x + vect_y*vect_y; if (dsquared < 1000) dsquared = 1000; var force = 10000.0 / dsquared; var mag = Math.sqrt(dsquared); vect_x /= mag; vect_y /= mag; g_balldx -= force * vect_x; g_balldy -= force * vect_y; var ball = getGUIObjectByName('ball'); var r=5; ball.size = new GUISize(g_ballx-r, g_bally-r, g_ballx+r, g_bally+r); } }