![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
На какой ячейке мышь ? [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