Доброго времени суток.
Такой вопрос я уже гдето видел однажды на форуме,но к сожелению снова найти его не смог.
Вопрос такой,как заставить двигаться шарик по уровню ,чтобы он не дёргался и не проваливался?

Код AS3:
import flash.display.*;
import flash.geom.Point;
var prov,Ox,Oy,y1,x1:Number;Oy=0;Ox=0;y1=0;x1=0;pi=1;
var pi:Number=0;
var power = 5;//7
var friction =0;
var xspeed = 0;
var yspeed = 0;//10
var up = false;//11
var down = false;
var left = false;
var right = false;//14
stage.addEventListener(KeyboardEvent.KEY_DOWN, key_pressed);//19
stage.addEventListener(KeyboardEvent.KEY_UP, key_released);//20
addEventListener(Event.ENTER_FRAME, render);
function key_pressed(e:KeyboardEvent):void {//23
switch (e.keyCode) {//24
case Keyboard.UP :
up = true;
break;
case Keyboard.DOWN :
down = true;
break;
case Keyboard.LEFT :
left = true;
break;
case Keyboard.RIGHT :
right = true;
break;
}//37
}
function key_released(e:KeyboardEvent):void {//39
switch (e.keyCode) {
case Keyboard.UP :
up = false;
break;
case Keyboard.DOWN :
down = false;
break;
case Keyboard.LEFT :
left = false;
break;
case Keyboard.RIGHT :
right = false;
break;
}//53
}
function render(e:Event):void {//55
/*
if (up) {//56
player.y -= power;
}
if (down) {
player.y += power;
}*/
if (left) {
player.x -= power;
mc2.x += power;
}
if (right) {
player.x += power;
mc2.x -= power;
}
var bd1:BitmapData = new BitmapData(player.width+5, player.height+5, true, 0);
bd1.draw(player);
var bd2:BitmapData = new BitmapData(mc2.width, mc2.height, true, 0);
bd2.draw(mc2);
var point1:Point = new Point(player.x, player.y-3);
var point2:Point = new Point(mc2.x, mc2.y-7);
//вот тут собстна и идёт проверка на соприкосновение с уровнем
if (bd1.hitTest(point1, 1, bd2, point2, 1)){
Ox=player.x;Oy=player.y;
if ((Oy!==player.y)&&(Ox!==player.x))
player.y=player.y-5;
prov=1;
}
else
{player.y+=10;}
if (bd1.hitTest(point1, 1, bd2, point2, 1)) test.text='True';
else test.text='False';
}