Здравствуйте все, я делаю игру - танки. Игра реализована так: есть клип карта. В нем лежит клип танк игрока и все остальные клипы. Мне нужно сделать так, чтобы перемещалась и вращалась сцена а танк игрока оставался на месте. Понятно, что раз я вращаю сцену, а танк находится не в ее центре, то чтоб он находился на месте относительно экрана его нужно каждый раз смещать. Вот код при помощи которого я это делаю

Код:
class Map extends MovieClip {
var array:Array;
var tank;
//Расчет танка расстояния от центра карты
private function countTankR(){
return Math.sqrt(this.tank._x*this.tank._x+this.tank._y*this.tank._y);
}
function setTank(tank) {
this.tank = tank;
}
function Map() {
this.tank._x=0;
this.tank._y=0;
trace("map create");
array = [];
}
function pushToArray(element) {
trace("push to array start");
this.array.push(element);
}
function getArray():Array {
return array;
}
function onEnterFrame() {
//Если танк может двигатся(не врезался ни во что)
if (this.tank.needToMoveMap()) {
//Нахожу расстояние от центра клипа до танка
var r:Number=countTankR();
//Вычисляю координаты танка относительно экрана
var x1:Number=r*Math.sin(this._rotation*Math.PI/180);
var y1:Number=r*Math.cos(this._rotation*Math.PI/180);
//Поворачиваю танк
this._rotation-=tank.getRotationSpeed();
//Вычисляю координаты танка относительно экрана после вращения
var x2:Number=r*Math.sin(this._rotation*Math.PI/180);
var y2:Number=r*Math.cos(this._rotation*Math.PI/180);
//Вычисляю смещение отн. экрана
var dx:Number=x2-x1;
var dy:Number=y2-y1;
//Смещаю карту для того, чтобы учесть перемещение, которое получается при вращении танка
this._x-=dx;
this._y-=dy;
//Смещаю карту для того, чтобы учесть перемещение сцены при перемещении танка
this._x -= this.tank.getDX();
this._y -= this.tank.getDY();
}
}
}
В общем что-то не работает. Подскажите кто может - что здесь не так. С уважением, Владимир