![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 | ||
Пользователь
Регистрация: 14.04.2011
Сообщений: 60
|
![]()
имеется поле из клеток 20х20, оно отрисовано на Image, координаты(угла картинки которая является клеткой) хранятся в массиве Field типа AField
Цитата:
Цитата:
Как определить, какой из клеток(нужны индексы массива) принадлежит точка, полученная по щелчку мыши? |
||
![]() |
![]() |
![]() |
#2 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
![]()
Вся область - карта в пикселах, состоит она из кусочков с определенными размерами. Мышь возвращает координаты на области, ...само собой напрашивается поделить координаты мыши на размеры одной игровой клетки в пикселах и округлить. Чтобы было все еще более точно и клетка выбиралась по центру, нужно смещение к координатам мыши, равное половине размера клетки, для каждой координаты.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 14.04.2011
Сообщений: 60
|
![]()
я написал
Код:
но проблема в том что у имаджа оси направлены по нормальному, а у моей сетки, совершенно в других направлениях, 1,1, это у меня самая левая клетка получается что он мне по горизонтали и верртикали клетки считает, даже там где их нет( |
![]() |
![]() |
![]() |
#4 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
![]()
Спрячь счет клетки в двойное условие, которое пропускает мышь только когда ее координаты находятся внутри области карты (область Image на форме).
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 14.04.2011
Сообщений: 60
|
![]()
ну это то понятно)
я про то что самая левая клетка он показывает [0,0] а самая правая [19,0] хотя должен бы показать [19,19] ведь ряд то последний) я не могу придумать как развернуть систему координат так как она у сетки расположена |
![]() |
![]() |
![]() |
#6 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
![]()
Посмотрел исходник, ...имеется в виду совсем изометрия и в координатах тоже. Не знаю на сколько это нужно, но может устроит и такой вариант: http://www.programmersforum.ru/showp...38&postcount=6 ?
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 14.04.2011
Сообщений: 60
|
![]()
добил таки свою систему координат, короче идея в том что ячейка - это 4 прямые, и точка внутри должна быть выше двух и ниже двух других прямых, это возможно только в одной ячейке. вот и проверяем в цикле каждую
если интересно могу код выложить, мало ли надо кому |
![]() |
![]() |
![]() |
#8 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
![]()
Проверка всех линий в цикле - нерационально, понятно, что на клик, а если на движение мыши нужно сразу знать в какой клетке карты? ...должна быть формула, я избавил себя и программу от сложных вычислений, задав координаты как для обычного поля в декартовой системе координат, тем более, что номера ячеек никак не используются в моей игре, и без разницы как они нумеруются, персонаж будет топать в указанную клетку. Может и у тебя та же история?
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 14.04.2011
Сообщений: 60
|
![]()
ну я вначале хотел делать стратегию, и вот для того чтоб дом построить мне нужен номер ячейки куда я щелкнул, чтоб знать где рисовать
а зачем может потребоваться номер при движении мыши? |
![]() |
![]() |
![]() |
#10 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
![]()
Понятно. Тем более не вижу причин выполнять изометрическую систему координат, ...это было бы нужно в случае логической игры, где по перемещению курсора нужно знать клетку на карте. Еще раз посмотрим рисуночек:
Тут совершенно не важно как нумеруются ячейки, а экран все равно прямоугольный. Выходит, что можно сделать черную область непроходимой, а координаты возвращать как для обычной декартовой системы координат и матрицы карты. И не обязательно заполнять карту в виде ромба, все клетки можно заполнять спрайтами. В любой момент изометрическое изображение может смениться видом сверху, ...все зависит от редактора карт. Такая реализация универсальна и оптимизирована.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Принадлежность точки | Stereo | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 14.12.2010 11:26 |
ПРИНАДЛЕЖНОСТЬ ТОЧКИ | Dar93ina | Помощь студентам | 1 | 03.12.2010 16:41 |
Принадлежность точки к фигуре | SeeJay | Помощь студентам | 9 | 24.12.2009 14:53 |
Принадлежность точки | Forro | Помощь студентам | 4 | 26.05.2008 14:33 |
Принадлежность точки | UnFaithful | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 08.01.2008 06:16 |