forked from 0ad/0ad
41 lines
1.1 KiB
JavaScript
Executable File
41 lines
1.1 KiB
JavaScript
Executable File
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);
|
|
}
|
|
}
|
|
|