|
|
|||||
Регистрация: Feb 2013
Сообщений: 24
|
Перемещение по карте
Приветствую, допустим имеется большая картинка (карта) 6000 на 6000 пикселей, она находится в отдельном мувике который я собственно перемещаю и еще можно приближать-отдалять (scaleX,scaleY меняется при этом).. Вопрос такой, допустим есть координаты внутри этого мувика с картой, куда я хочу переместиться, как это реализовать? То есть допустим на карте есть объект и у него свои координаты, как переместить карту так, чтоб этот объект встал ровно по середине экрана (при разном scale)? Спасибо.
Последний раз редактировалось scorp2007; 01.07.2016 в 23:59. |
|
|||||
Регистрация: Jun 2014
Сообщений: 558
|
private bigMap:BigMap = new BigMap(); private newObj:newObj = new newObj(); private function add():void { this.addChild(bigMap); bigMap.addChild(newObj);//появится в точке начала координат bigMap, если она в центре, появится аккурат в центре, если в углу, то получите нужную координату, добавив половину высоты и ширины объекта bigMap(если не знаете как получить, читаем свойства спрайтов/мувиков) } так же можно получить аналогичный результат globalToLocal |
|
|||||
|
|
|||||
Регистрация: Feb 2013
Сообщений: 24
|
Что-то не пойму, можете написать какова будет формула? ВОт допустим есть map мувик, который я перетаскиваю по экрану и размер его как несколько экранов, в этом map имеется объект obj, как мне переместить map так чтоб этот obj был по середине экрана, учитывая что меняется scaleX,scaleY у map? (когда уменьшаем-увеличиваем карту колесом мыши)
|
|
|||||
Регистрация: Jun 2014
Сообщений: 558
|
Цитата:
|
|
|||||
Регистрация: Feb 2013
Сообщений: 24
|
Будет что? Допустим делаю я по-вашему коду, вставляю объект в карту (newObj в BigMap), далее я уменьшаю карту путем уменьшени scaleX,scaleY до 0.7 допустим, потом перемещаю карту BigMap на несколько сотен пикселей вниз и вправо. И как теперь сделать так чтоб newObj оказался в середине экрана? Вариант поместить BigMap на начальные координаты конечно не действует, ибо этих newObj будет много и они будут разбросаны в разных местах на карте.
|
|
|||||
Мне кажется, он совсем о другом спрашивал.
Цитата:
// например, player, это этот персонаж, находящийся в контейнере-карте // находим его положение относительно левого верхнего угла stage, указав параметром точку с координатами по умолчанию 0:0 var playerGlobalPosition:Point = player.localToGlobal(new Point()); // допустим размер сцены 800х480, а положение персонажа получилось 1000 по x и 1200 по y. // ухнаем координаты середины сцены var centerX:int = stage.stageWidth / 2; var centerY:int = stage.stageHeight / 2; //дальше отнимаем эти значения от положения персонажа, и получившиеся числа отнимаем от положения контейнера container.x -= (playerGlobalPosition.x - centerX); container.y -= (playerGlobalPosition.y - centerY);
__________________
Ко мне можно и нужно обращаться на ты) |
|
|||||
Регистрация: Jun 2014
Сообщений: 558
|
caseyryan ну я кидал ниже local-global, там вроде не шибко сложно. Хотя у тебя интересная реализация, надобно запомнить, я делал иначе
|
Часовой пояс GMT +4, время: 20:47. |
|
« Предыдущая тема | Следующая тема » |
|
|