Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.07.2013, 20:18   #1
gufon
Форумчанин
 
Регистрация: 21.12.2010
Сообщений: 224
По умолчанию Редактор 2D карт

Есть многомерный массив 100х100(100к блоков), нужно сделать визуальный редактор этого массива, массив устроен довольно просто, каждый элемент массива в качестве значение имеет число, 1=трава,2=камень,3=ода и т.д.
Юзать OpenGL желания нет, мб есть способ роще? 10к битмапов будет довольно сложно создать.
gufon вне форума Ответить с цитированием
Старый 21.07.2013, 23:28   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

у вас 10к типов клеток?
просто рисуйте только видимую часть массива, а битмапов нужно не более чем количество типов клеток.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.07.2013, 23:52   #3
gufon
Форумчанин
 
Регистрация: 21.12.2010
Сообщений: 224
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
у вас 10к типов клеток?
просто рисуйте только видимую часть массива, а битмапов нужно не более чем количество типов клеток.
через что рисовать, подскажите
gufon вне форума Ответить с цитированием
Старый 22.07.2013, 00:00   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

если устроит скорость то можно и канвой.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 22.07.2013, 02:27   #5
gufon
Форумчанин
 
Регистрация: 21.12.2010
Сообщений: 224
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
если устроит скорость то можно и канвой.
сделал набросок на канве, если использовать скролиг, фпс 1сек, а скролинг по любому нужен, так как 100х100,думаю придется юзать OpenGL
gufon вне форума Ответить с цитированием
Старый 22.07.2013, 03:33   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от gufon Посмотреть сообщение
сделал набросок на канве, если использовать скролиг, фпс 1сек, а скролинг по любому нужен, так как 100х100,думаю придется юзать OpenGL
лучше покажите, не факт что у вас прорисовка самое медленное,
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 22.07.2013, 03:40   #7
gufon
Форумчанин
 
Регистрация: 21.12.2010
Сообщений: 224
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
лучше покажите, не факт что у вас прорисовка самое медленное,
Показать не могу, так как не сохранил, могу объяснить как все происходило.
Есть TImage1, в нем рисуется вся карта 100х100(каждый тип блока копируется с другого TImage), у него visible:false, есть Timage2, это то что видит пользователь, и там копируется прямоугольник с Timage1, и кнопками сделал изменение координат этого прямоугольника, тем самым некий скролинг. Это все что я смог придумать за 15минут, канвас раньше никогда не трогал(не приходилось), графику на OpenGL пишу обычно, уже даже небольшую библиотеку сделал на нем, как раз под подобный редактор,теперь даже проще чем на канвасе сделать, только уже поздно, нет желания сейчас что то писать
gufon вне форума Ответить с цитированием
Старый 22.07.2013, 05:07   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

такой подход будет тупить и на OGL.
вам не нужна общая карта, рассчитывайте то что видит пользователь, и лишь это и рисуйте.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 22.07.2013, 06:59   #9
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Почти всегда редакторы карт делаю на стринггриде. Скорость вменяемая.
Пример http://phomm.narod.ru/programs/h3mtered.htm (исходный код прилагается, карту для примера там тоже можно найти, для её запуска, правда, может потребоваться конфигурирование редактора).
Работать нужно заставить всего пару-тройку вещей, как-то: события OnDrawCell OnMouseDown OnMouseMove в гриде и работу с реальным массивом данных карты, где записаны индексы(либо сразу ссылки на битмапы) и с массивом битмапов.

Писал такое и без грида - на чистом канвасе, но это посложнее будет, зато и скорость в разы (есть пример типа движка игры, но кода не дам - зная Ваш уровень - вряд ли поймёте, да и не нужны Вам такие сложности, из того , что есть не переделаете на редактор). Пробовал писать такое на чистом опенгле, но это было давно и получилось убого, хоть и работало(в тестовом виде, далее не развивал, не понравилось, грид устроил больше), могу даже раскопать чего по исходникам.
phomm вне форума Ответить с цитированием
Старый 22.07.2013, 13:07   #10
gufon
Форумчанин
 
Регистрация: 21.12.2010
Сообщений: 224
По умолчанию

Канавас вообще незнаю, вчера то что в интернете нашел, с этого и слепил. Не буду лепить велосипед и на OGL сделаю
gufon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
векторный редактор карт AndersonEgo C# (си шарп) 7 26.05.2011 17:03
написать редактор карт на с++ GLooZy Общие вопросы C/C++ 4 17.12.2010 16:45
Написал редактор карт sasha1993 Gamedev - cоздание игр: Unity, OpenGL, DirectX 8 18.07.2009 21:31
Еще один Редактор Карт DeKot Gamedev - cоздание игр: Unity, OpenGL, DirectX 12 09.06.2009 10:25
Простенький редактор карт. ROD Gamedev - cоздание игр: Unity, OpenGL, DirectX 5 07.04.2009 22:24