Показать сообщение отдельно
Старый 13.07.2010, 20:37
mott вне форума Посмотреть профиль Отправить личное сообщение для mott Найти все сообщения от mott
  № 1  
Ответить с цитированием
mott

Регистрация: Mar 2010
Сообщений: 8
Attention Проблемы с методами MovieClip при изменении его координат!

Привет всем.
Постоянно при создании игр возникают проблемы с клипом, который приходится двигать.
Описание проблемы
Игра - вид сверху. Есть главный клип в который добавляются все игровые объекты. Игровое поле ( этот главный клип ) больше размера приложения, следовательно при движении персонажа он остается на месте а вокруг него движется игровое поле:

Код AS3:
// _this : MovieClip - это гланый клип
// player : MovieClip - персонаж
if ( player.x > SCREEN_WIDTH / 2 && player.x < SCREEN_WIDTH * 2 - SCREEN_WIDTH / 2 ) {
   _this.x = -player.x + SCREEN_WIDTH / 2;
}
if ( player.y > SCREEN_HEIGHT / 2 && player.y < SCREEN_HEIGHT * 2 - SCREEN_HEIGHT / 2 ) {
   _this.y = -player.y + SCREEN_HEIGHT / 2;
}
После того как главный клип сдвигается перестают работать:
hitTestPoint
localToGlobal
globalToLocal

Пример:
Код AS3:
var temp : MovieClip = ...
// задал ему размеры
_this.addChild ( temp );
// точка находится внутри temp
temp.globalToLocal( new Point ( 730.78, 140.54 ) );
Результат

// _this еще не двигался ( правильное значение )
(x=-4.75, y=2.25)
// _this после сдвигов
(x=85.85, y=2.25)
(x=613.3, y=99.5)
(x=458.55, y=327)

Есть ли как-нибудь способ избавится от таких проблем?
Заранее благодарю за помощь.