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

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

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

Регистрация: Jul 2012
Сообщений: 44
По умолчанию Изометрия. Координаты сетки по координатам мыши.

Всем привет.
Прошу помочь с формулой.
Цель: кликая по ромбу (тайлу), получить его координаты в изометрической сетке.
По X сетка идет вправо-вниз, по Y - влево-вниз.
Координаты мыши беру относительно спрайта, в котором лежит вся сетка.

Спасибо заранее за помощь.

Добавлено через 21 минуту
Вот пример сетки.


Отсчет координат мыши идет от точки X0,Y0

Старый 22.07.2012, 00:02
RandomUser вне форума Посмотреть профиль Отправить личное сообщение для RandomUser Найти все сообщения от RandomUser
  № 2  
Ответить с цитированием
RandomUser

Регистрация: Mar 2006
Адрес: Odessa
Сообщений: 157
Может будет проще создавать отдельный клип для каждого тайла, а в самом клипе-тайле уже хранить его координаты?
__________________
Не всех война убила - многих покалечила

Старый 22.07.2012, 00:33
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 3  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Почитайте Джоба Макара. Секреты разработки игр , кажется - не помню точно. там для as1, но сами алгоритмы и объяснения хорошие
__________________
Отряд Котовскага

Старый 22.07.2012, 01:04
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 4  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
http://coolisee.com/2010/06/03/izome...aya-proekciya/
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 22.07.2012, 01:04
artcraft вне форума Посмотреть профиль Отправить личное сообщение для artcraft Посетить домашнюю страницу artcraft Найти все сообщения от artcraft
  № 5  
Ответить с цитированием
artcraft
 
Аватар для artcraft

блогер
Регистрация: Aug 2005
Адрес: www.artcraft.cz
Сообщений: 1,967
Записей в блоге: 6
Отправить сообщение для artcraft с помощью ICQ
вам следует вникнуть в то как работают матрицы
вот полезная ссылка
__________________
Хороший отдых - половина работы.

Старый 22.07.2012, 01:13
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 6  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
а ещё есть isoLib
__________________
Отряд Котовскага

Старый 22.07.2012, 02:01
artcraft вне форума Посмотреть профиль Отправить личное сообщение для artcraft Посетить домашнюю страницу artcraft Найти все сообщения от artcraft
  № 7  
Ответить с цитированием
artcraft
 
Аватар для artcraft

блогер
Регистрация: Aug 2005
Адрес: www.artcraft.cz
Сообщений: 1,967
Записей в блоге: 6
Отправить сообщение для artcraft с помощью ICQ
вот набросал пример http://wonderfl.net/c/xefs
переводит координаты точки из системы координат желтого квадрата в систему голубого

всю магию делают вот эти две строчки:
Код AS3:
var mx:Matrix = new Matrix(1, .5, -1, .5, 100, 0);   
var b:Point = mx.transformPoint( new Point( mouseX, mouseY ) );
__________________
Хороший отдых - половина работы.

Старый 22.07.2012, 13:41
darkthor вне форума Посмотреть профиль Отправить личное сообщение для darkthor Найти все сообщения от darkthor
  № 8  
Ответить с цитированием
darkthor
 
Аватар для darkthor

Регистрация: Jul 2012
Сообщений: 44
Цитата:
Сообщение от RandomUser Посмотреть сообщение
Может будет проще создавать отдельный клип для каждого тайла, а в самом клипе-тайле уже хранить его координаты?
Думал об этом. Каждый тайл это питмап с картинкой, там есть координаты. Но что с ними делать? Но ненагрузочных методов я не придумал.

Цитата:
Сообщение от Котяра Посмотреть сообщение
Почитайте Джоба Макара. Секреты разработки игр , кажется - не помню точно. там для as1, но сами алгоритмы и объяснения хорошие
Как раз наткнулся на эту книгу и несколько подобных. Изучу. Спасибо.

Цитата:
Сообщение от alatar Посмотреть сообщение
Отличная статья, сначала опирался на нее, но у меня уже другой принцип построения карты. Всего 2 координаты и просто выведенные тайлы с просчитанными отступами.

Цитата:
Сообщение от Котяра Посмотреть сообщение
а ещё есть isoLib
Движок отличный кстати. Я не стал его использовать, так как не понял как вывести обычные битмапы с оффсетами. У них в примерах подгружается swf в которой отмечена точка смещения, а мне для этого переписывать очень много, а самое главное все картинки переделывать. Возможно я не прав.

Цитата:
Сообщение от artcraft Посмотреть сообщение
вот набросал пример http://wonderfl.net/c/xefs
переводит координаты точки из системы координат желтого квадрата в систему голубого

всю магию делают вот эти две строчки:
Код AS3:
var mx:Matrix = new Matrix(1, .5, -1, .5, 100, 0);   
var b:Point = mx.transformPoint( new Point( mouseX, mouseY ) );
Кстати да, про матрицы я что-то не подумал. Очень интересно, попробую реализовать. Спасибо большое.

Старый 22.07.2012, 14:29
RandomUser вне форума Посмотреть профиль Отправить личное сообщение для RandomUser Найти все сообщения от RandomUser
  № 9  
Ответить с цитированием
RandomUser

Регистрация: Mar 2006
Адрес: Odessa
Сообщений: 157
Используйте вместо битмапа кастомый класс, наследник спрайта. В нем уже храните битмап и сделайте отдельно свойства с координатами в вашей сетке.
__________________
Не всех война убила - многих покалечила

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

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

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


 


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


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