Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.08.07;
Скачать: CL | DM;

Вниз

На какой ячейке мышь ?   Найти похожие ветки 

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

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

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


 
Venom Spawn ©   (2005-04-19 15:38) [1]

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


 
[GameDev] ©   (2005-04-19 16:03) [2]

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

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 Это имеет значение.
Помогите пожалуйста разобраться :)


 
[GameDev] ©   (2005-04-19 16:25) [3]

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


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

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


 
Venom Spawn ©   (2005-04-19 17:18) [5]

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


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

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

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


 
[GameDev] ©   (2005-04-20 08:56) [7]

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


 
Xeno ©   (2005-04-20 09:24) [8]

авпиав


 
Xeno ©   (2005-04-20 09:24) [9]

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


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

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


 
Zak3D[@Tm] ©   (2005-04-20 10:56) [11]

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


 
Zak3D[@Tm] ©   (2005-04-20 11:04) [12]

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



Страницы: 1 вся ветка

Текущий архив: 2005.08.07;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.058 c
3-1119522193
Sirus
2005-06-23 14:23
2005.08.07
Что быстрее? DBF или Firebird?


14-1121554440
Германн
2005-07-17 02:54
2005.08.07
Microsoft Visual Studio .NET


1-1121701815
Destroyer
2005-07-18 19:50
2005.08.07
Как удалить секцию в ini файле?


1-1121847211
Starter
2005-07-20 12:13
2005.08.07
Взаимодействие дочерних форм в MDI-приложении


1-1121940084
vers
2005-07-21 14:01
2005.08.07
Выполнение до отображения главной формы приложения