|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
15.04.2007, 02:30 | #11 |
Новичок
Джуниор
Регистрация: 10.02.2007
Сообщений: 2
|
предлагаю общий алгоритм рисования:
мап(а,б) ; массив карты. а,б - ее размеры, должен возвращать картинку ; гекса или ссылку на нее. выс ; высота гекса шир ; ширина гекса смещ ; смещение столбцов по высоте начало м=шир/2 для и от 0 до а л=нечет(а) ; =1 если а нечетная, иначе 0 Х=целое(и/2)*шир+м*л для к от 0 до б У=к*выс+смещ*л рисовать (Х,У,мап(и,к) следующий к следующий и конец Последний раз редактировалось SkyFox; 15.04.2007 в 02:33. |
23.06.2007, 23:30 | #12 |
аккаунт недоступен
Форумчанин
Регистрация: 23.01.2007
Сообщений: 107
|
я конечно понимаю что мне здесь скорее всего никто не поможет, но ввиду того что инфы не нашел, а также принципа " чем черт ни шутит" всетаки спрошу. Собственно вопрос в следующем - я не пойму какой смысл обсуждать как рисовать сетку и прочую чушь ,типа с какими гексами контактирует гекс; на мой взгляд главным является вопрос о том как будет осуществляться взаимодействие с гексом - например OnClick. На мой взгляд непрофессионально будет по координатам клика определять какой гекс был нажат => вероятно стоит сделать его компонентом или чтото типа того что бы с OnClick`ом можно было работать на более разумном уровне. Есть на этом форуме тот кто может чтонибудь посоветовать по этому поводу??
ввел пароль, который мне не известен
|
24.06.2007, 12:15 | #13 |
Владимир М.
Участник клуба
Регистрация: 30.10.2006
Сообщений: 1,289
|
"На мой взгляд непрофессионально будет по координатам клика определять какой гекс был нажат => вероятно стоит сделать его компонентом или чтото типа того что бы с OnClick`ом можно было работать на более разумном уровне"
а в чем отличие то ? хоть прячешь проверку координат в компонент, хоть явно делаешь.. "прочую чушь ,типа с какими гексами контактирует гекс" один гекс никому не нужен .. имеет смысл массив гексов, и там этот метод - один из основных .
Берегите друг друга!
|
24.06.2007, 19:43 | #14 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Есть вариант...
Есть способ сверх точный, но может покажется сложновато, но тем не менее...
Вначале задается массив типа Integer. Его ячейки заполняются цифрами 1 и 0 в шахматном порядке, т.е.: ------------- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 ------------- Для визуализации достаточно пробежаться по массиву, и там где "1" выполнить процедуру рисования заготовленной картинки ячейки со смещением к центру. Смещение на карте каждой ячейки по-горизонтали 2:1, а по-вертикали 1:2. Все перемещение в массиве по "1". По-горизонтали на i+2 (или i-2), по-вертикали 4 варианта: i-1, j-1; i+1, j-1; i-1, j+1; i+1, j+1. В качестве текущей ячейки можно использовать любой объект, тот же Image. На основном поле работает процедура "OnClick", ...в ней придется считывать отклонение курсора мыши от текущей ячейки (координаты Image). Если устраивает, могу подробнее.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
25.06.2007, 01:04 | #15 | |
аккаунт недоступен
Форумчанин
Регистрация: 23.01.2007
Сообщений: 107
|
2Beermonza> Мда..., после получаса напряженной работы мозга удалось все понять. А рисовать надо на канве и заводить Имаг только для текущей позиции?? поподробнее не помешает.
Как я понял "К" означает картинка. А пространство между 2мя картинками чем забить? Цитата:
Былобы конечно шикарно компонент сделать, но как подумаешь что у него должно быть не 4 угла а 6 в такую дипрессию впадаю..
ввел пароль, который мне не известен
|
|
26.06.2007, 21:50 | #16 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
пояснения...
Так и есть, рисовать на "канве", но один единственный раз при загрузке карты, далее все поле (объект Image, если хотите) просто будет сдвигаться в соответствии с размерами одной ячейки, ...тут "вольному - воля" центрирование активной позиции или сдвиг карты по достижению одного из концов.
Свободные ячейки массива послужат для сохранения места прибывания других персонажей, предметов, препятствий и пр., нужен лишь унифицированный код записи (смещение i+1 для выборки данных). Массив не обязательно должем быть того типа, что я указал в начале, строковый тип будет даже предпочтительнее. Активная позиция устанавливается координатами пустого (или с картинкой персонажа) "Имага", он же используется для выполнения действий на свой "OnClick". itisiam, судя по вашим рассуждениям, вам не нужно объяснять как считывать позицию курсора мыши и выполнять сдвиг "Имага" на новую позицию, ...если не так, то напишу.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Последний раз редактировалось Beermonza; 26.06.2007 в 21:59. |
20.07.2007, 13:24 | #17 |
Регистрация: 21.04.2007
Сообщений: 3
|
я делаю стратегию с разрисованной территорией и у меня такой вопрос:как сделать так чтобы щелчёк мыши обрабатывался не по квадратной картинке а по нужным местам в этом квадрате, так чтобы щелчёк на прозрачность не считался щелчком на картинку (как попроще объяснить не знаю)
|
20.07.2007, 13:58 | #18 |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,501
|
if цвет пикселя = например, белый (если отбивка по белому) then exit;
|
20.07.2007, 15:55 | #19 |
Регистрация: 21.04.2007
Сообщений: 3
|
не понял, что значит отбивка?
|
20.07.2007, 15:59 | #20 |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,501
|
прозрачность - это какой цвет? код какой? проверяешь где курсор был при клике, если цвет прозрачности, то ставь выход из обрабочика.
|