Показать сообщение отдельно
Старый 13.12.2012, 19:09
Sintesis вне форума Посмотреть профиль Отправить личное сообщение для Sintesis Найти все сообщения от Sintesis
  № 18  
Ответить с цитированием
Sintesis
 
Аватар для Sintesis

Регистрация: Jul 2008
Сообщений: 912
Всё не читал, но скролинг в игре делаю так:
Код AS3:
public function GameView(){
			super();
 
			_camera = new Sprite();//камера - просто спрайт, является контейнером
			addChild(Dispatcher._store.getBgGame());//задний фон не движимый, если нужен
 
			_avatar = new Sprite();//изображение героя
			_avatar.graphics.beginFill(0xff0000);
			_avatar.graphics.drawCircle(0, 0, 20);
 
var _laier2:Bitmap = new Bitmap();//ещё какой-нибудь слой графики
			_laier2.y = -100;
 
			addChild(_camera);
_camera.addChild(_laier2);
			_camera.addChild(_avatar);
			_camera.addChild(Dispatcher._store.getLevelsGraphic());//графика уровня
 
			addEventListener(Event.ENTER_FRAME, update);
		}
 
		private function update(evant:Event):void {
 
			_avatar.x = ...;//действуем на героя
			_avatar.y = ...;
			_camera.x = -_avatar.x / 2.5 + 20;//действуем на камеру 
			_camera.y = -_avatar.y / 1.5 + 70;
	                _laier2.x = _avatar.x / 5;//действуем на второй слой графики
			_laier2.y = _avatar.y / 4;
		}
	}
}
Перемещать нужно героя в общем спрайте-контейнере. И перемещать контейнер, в котором все спрайты находятся. Выходит, что надо перемещать и героя, и камеру. В общем просто наглядный пример, можно и под данную задачу подстроить, можно много слоёв графики обработать и скролить их по разному играя значениями в строке _camera.x = -_avatar.x / 2.5 + 20;