Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 01.07.2016, 23:44
scorp2007 вне форума Посмотреть профиль Отправить личное сообщение для scorp2007 Найти все сообщения от scorp2007
  № 1  
Ответить с цитированием
scorp2007

Регистрация: Feb 2013
Сообщений: 24
Question Перемещение по карте

Приветствую, допустим имеется большая картинка (карта) 6000 на 6000 пикселей, она находится в отдельном мувике который я собственно перемещаю и еще можно приближать-отдалять (scaleX,scaleY меняется при этом).. Вопрос такой, допустим есть координаты внутри этого мувика с картой, куда я хочу переместиться, как это реализовать? То есть допустим на карте есть объект и у него свои координаты, как переместить карту так, чтоб этот объект встал ровно по середине экрана (при разном scale)? Спасибо.


Последний раз редактировалось scorp2007; 01.07.2016 в 23:59.
Старый 02.07.2016, 10:41
neonoviiwolf вне форума Посмотреть профиль Отправить личное сообщение для neonoviiwolf Найти все сообщения от neonoviiwolf
  № 2  
Ответить с цитированием
neonoviiwolf

Регистрация: Jun 2014
Сообщений: 558
Код AS3:
private bigMap:BigMap = new BigMap();
private newObj:newObj = new newObj();
private function add():void
{
    this.addChild(bigMap);
    bigMap.addChild(newObj);//появится в точке начала координат bigMap, если  она в центре, появится аккурат в центре, если в углу, то получите нужную координату, добавив половину высоты и ширины объекта bigMap(если не знаете как получить, читаем свойства спрайтов/мувиков)
}
Добавлено через 5 минут
так же можно получить аналогичный результат globalToLocal

Старый 02.07.2016, 17:27
ALeXVoz вне форума Посмотреть профиль Отправить личное сообщение для ALeXVoz Посетить домашнюю страницу ALeXVoz Найти все сообщения от ALeXVoz
  № 3  
Ответить с цитированием
ALeXVoz
 
Аватар для ALeXVoz

Регистрация: Nov 2008
Адрес: Ukraine, Kyiv
Сообщений: 94
Отправить сообщение для ALeXVoz с помощью Skype™
используйте http://help.adobe.com/ru_RU/FlashPla...ocalToGlobal()

Старый 02.07.2016, 18:49
scorp2007 вне форума Посмотреть профиль Отправить личное сообщение для scorp2007 Найти все сообщения от scorp2007
  № 4  
Ответить с цитированием
scorp2007

Регистрация: Feb 2013
Сообщений: 24
Что-то не пойму, можете написать какова будет формула? ВОт допустим есть map мувик, который я перетаскиваю по экрану и размер его как несколько экранов, в этом map имеется объект obj, как мне переместить map так чтоб этот obj был по середине экрана, учитывая что меняется scaleX,scaleY у map? (когда уменьшаем-увеличиваем карту колесом мыши)

Старый 02.07.2016, 19:18
neonoviiwolf вне форума Посмотреть профиль Отправить личное сообщение для neonoviiwolf Найти все сообщения от neonoviiwolf
  № 5  
Ответить с цитированием
neonoviiwolf

Регистрация: Jun 2014
Сообщений: 558
Цитата:
Сообщение от scorp2007 Посмотреть сообщение
Что-то не пойму, можете написать какова будет формула? ВОт допустим есть map мувик, который я перетаскиваю по экрану и размер его как несколько экранов, в этом map имеется объект obj, как мне переместить map так чтоб этот obj был по середине экрана, учитывая что меняется scaleX,scaleY у map? (когда уменьшаем-увеличиваем карту колесом мыши)
используйте код, что я написал и всё будет так сразу

Старый 02.07.2016, 19:50
scorp2007 вне форума Посмотреть профиль Отправить личное сообщение для scorp2007 Найти все сообщения от scorp2007
  № 6  
Ответить с цитированием
scorp2007

Регистрация: Feb 2013
Сообщений: 24
Цитата:
Сообщение от neonoviiwolf Посмотреть сообщение
используйте код, что я написал и всё будет так сразу
Будет что? Допустим делаю я по-вашему коду, вставляю объект в карту (newObj в BigMap), далее я уменьшаю карту путем уменьшени scaleX,scaleY до 0.7 допустим, потом перемещаю карту BigMap на несколько сотен пикселей вниз и вправо. И как теперь сделать так чтоб newObj оказался в середине экрана? Вариант поместить BigMap на начальные координаты конечно не действует, ибо этих newObj будет много и они будут разбросаны в разных местах на карте.

Старый 02.07.2016, 19:58
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 7  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Сообщение от neonoviiwolf Посмотреть сообщение
используйте код, что я написал и всё будет так сразу
Мне кажется, он совсем о другом спрашивал.

Цитата:
Что-то не пойму, можете написать какова будет формула? ВОт допустим есть map мувик, который я перетаскиваю по экрану и размер его как несколько экранов, в этом map имеется объект obj, как мне переместить map так чтоб этот obj был по середине экрана, учитывая что меняется scaleX,scaleY у map? (когда уменьшаем-увеличиваем карту колесом мыши)
Примерно так (пишу песевдокод, ибо мне в лом воспроизводить всю эту ситуацию):
Код AS3:
// например, 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);
Как-то так. Не тестировал, может что-то надо поправить
__________________
Ко мне можно и нужно обращаться на ты)

Старый 02.07.2016, 20:24
neonoviiwolf вне форума Посмотреть профиль Отправить личное сообщение для neonoviiwolf Найти все сообщения от neonoviiwolf
  № 8  
Ответить с цитированием
neonoviiwolf

Регистрация: Jun 2014
Сообщений: 558
caseyryan ну я кидал ниже local-global, там вроде не шибко сложно. Хотя у тебя интересная реализация, надобно запомнить, я делал иначе

Создать новую тему Ответ Часовой пояс GMT +4, время: 01:31.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 01:31.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.