Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Изометрия. Координаты сетки по координатам мыши. (http://www.flasher.ru/forum/showthread.php?t=182390)

darkthor 21.07.2012 22:40

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

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

Добавлено через 21 минуту
Вот пример сетки.
http://programmersclub.ru/wp-content.../DeKot_1_2.png

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

RandomUser 22.07.2012 00:02

Может будет проще создавать отдельный клип для каждого тайла, а в самом клипе-тайле уже хранить его координаты?

Котяра 22.07.2012 00:33

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

alatar 22.07.2012 01:04

http://coolisee.com/2010/06/03/izome...aya-proekciya/

artcraft 22.07.2012 01:04

вам следует вникнуть в то как работают матрицы
вот полезная ссылка

Котяра 22.07.2012 01:13

а ещё есть isoLib

artcraft 22.07.2012 02:01

вот набросал пример 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 ) );


darkthor 22.07.2012 13:41

Цитата:

Сообщение от RandomUser (Сообщение 1089355)
Может будет проще создавать отдельный клип для каждого тайла, а в самом клипе-тайле уже хранить его координаты?

Думал об этом. Каждый тайл это питмап с картинкой, там есть координаты. Но что с ними делать? Но ненагрузочных методов я не придумал.

Цитата:

Сообщение от Котяра (Сообщение 1089359)
Почитайте Джоба Макара. Секреты разработки игр , кажется - не помню точно. там для as1, но сами алгоритмы и объяснения хорошие

Как раз наткнулся на эту книгу и несколько подобных. Изучу. Спасибо.

Цитата:

Сообщение от alatar (Сообщение 1089361)

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

Цитата:

Сообщение от Котяра (Сообщение 1089364)
а ещё есть isoLib

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

Цитата:

Сообщение от artcraft (Сообщение 1089367)
вот набросал пример 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 ) );


Кстати да, про матрицы я что-то не подумал. Очень интересно, попробую реализовать. Спасибо большое.

RandomUser 22.07.2012 14:29

Используйте вместо битмапа кастомый класс, наследник спрайта. В нем уже храните битмап и сделайте отдельно свойства с координатами в вашей сетке.


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

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