function distance ($a, $b)
{
if ($a['x'] < $b['x'])
{
$x = ($b['x'] - $a['x']);
} else {
$x = ($a['x'] - $b['x']);
}
if ($a['y'] < $b['y'])
{
$y = ($b['y'] - $a['y']);
} else {
$y = ($a['y'] - $b['y']);
}
return Array ('x' => $x, 'y' => $y);
}
function automoved ($id, $xy)
{
$array = nps ($id);
$rand = rand (1,4);
$array['x'] = (int)$array['x'];
$array['y'] = (int)$array['y'];
if ($rand == 1)
{
$moved = array (
'x' => ($array['x'] + 5), 'y' => ($array['y'])
);
} else if ($rand == 2) {
$moved = array (
'x' => ($array['x'] - 5), 'y' => ($array['y'])
);
} else if ($rand == 3) {
$moved = array (
'x' => ($array['x']), 'y' => ($array['y'] + 5)
);
} else if ($rand == 4) {
$moved = array (
'x' => ($array['x']), 'y' => ($array['y'] - 5)
);
}
$distance = distance (array ('x' => $array['x'],'y' => $array['y']), $xy);
$x = (int) $distance['x'];
$y = (int) $distance['y'];
$d = distance ($moved, $xy);
$nx = (int) $d['x'];
$ny = (int) $d['y'];
if ($nx < $x or $ny < $y)
{
return $moved;
} else {
return automoved ($id, $xy);
}
}
Добавлено через 02:18 сек.
выше выложил две функции они и осуществляют передвижение объекта в 5px только с интервалом в 2сек. я беру новую позицию через Ajax и ресую его позицию на плоскости...
Изменил: Веталь (26.10.2010 / 20:43)