Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

На какой ячейке мышь ? [Delphi, Windows]


[GameDev] ©   (2005-04-19 15:32:00) 

Добрый день уважаемые МАСТЕРА
Я пишу изометрическую игру, и столкнулся с такой проблемой
Как перевести координаты мыши в координаты клеток
карту заполняю след. образом:

MapLayer1:=TMapLayer1.Create(...);
X:=-64;
Y:=-32;
MapLayer2:=TMapLayer2.Create(...);
X:=0;
Y:=0;

...
MapLayer1.Chips[i,j]:=Random(5);
MapLayer2.Chips[i,j]:=Random(5);

т.е я заполняю карту двумя слоями
1-й слой начинает рисоваться со здвигом влево на -64 и вверх на -32
2-й слой рисуется обычно с координат 0,0
каждый тайл имеет размер 128x64
получается красивая карта, но как теперь определить координыта клеток.

ПОМОГИТЕ мне PLEASE


Zak3D[@Tm]   (2005-04-20 11:04:00) [1]

Хотя в твоём случае формула будет несколько другой:
X := (Trunc(Позиция курсора/Ширина тайла))*Ширина тайла-Ширина тайла/2;
Y соответственно.


Zak3D[@Tm]   (2005-04-20 10:56:00) [2]

Узнать координаты тайла на который наведён курсор можно так:
X := (Trunc(Позиция курсора/Ширина тайла))*Ширина тайла;
Y := (Trunc(Позиция курсора/Высота тайла))*Высота тайла;
Где X и Y то, что мы искали, тоесть координаты нужного тайла.
Но со скролируемой картой нужно будет делать поправку на скрол : )
-----------------------
Если я конечно понял о чём идёт речь : )


MsShtaer   (2005-04-20 10:08:00) [3]

Я делал. Бьёшь весь экран ка квадраты 128х64. Далее определяешь в каком квадрате мышь и её координаты в квадрате. Далее через битовую маску в памяти определяешь смещение. И получаешь искомое значение. (Битовую маску можно зделать как в той статье)


Xeno   (2005-04-20 09:24:00) [4]

авпиав


Xeno   (2005-04-20 09:24:00) [5]

>[GameDev]
Выложи исходник сего творения, может кто и поможет


[GameDev]   (2005-04-20 08:56:00) [6]

Люди ну помогите мне ......


П7   (2005-04-19 20:06:00) [7]

Я не обижаю, это у меня шутки такие дурацкие! (:
Я это всё к тому говорю, что если у человека есть уже детальное описание решения проблемы, но он не может в него "въехать", и поэтому решает привлечь колективный разум, то он зря теряет время.

Экспериментируйте, товарищЪ! И всё у вас получится...


Venom Spawn   (2005-04-19 17:18:00) [8]

ГеймДев - енто значит игруху создаёт, и скилл тут непричём. Уважаемый П7, зачем человека обижаете?


П7   (2005-04-19 16:43:00) [9]

Срочно? И ваще, ты же ГеймДев... А такие вопросы задаёшь. Назовись ламерюгой и тебе помогут (:


[GameDev]   (2005-04-19 16:25:00) [10]

Ну помогите пожалйста ..... мне это очень срочно нужно ...
объясните подробненько (если не трудно конечно)


[GameDev]   (2005-04-19 16:03:00) [11]

я уже там смотрел ...

I:=(X div SpriteWidth)*2; для четных
I:=(X div SpriteWidth)*2-1; для нечетных, а Y везде одинаковый :
J:=Y div SpriteHeigth;

но я чет не понимаю .....
как все таки получить например в
MouseMap_x и MouseMap_y координаты ячейки на которой мышь лежит

и потом там вывод тайлов идет вручную, а у меня через SpriteEngine там все автоматически ... и еще в примере вывод идет с координат 0,0 ... а у меня с координат -64,-32 Это имеет значение.
Помогите пожалуйста разобраться :)


Venom Spawn   (2005-04-19 15:38:00) [12]

Посмотри тут: http://delphigfx.mastak.ru/2d/006/2d_6.htm


Наверх

Титульная страница Поиск, карта сайта Написать письмо