Меню сайта
Форма входа

Категории раздела
Уроки по созданию игр [38]
Программирование игр разной сложности
Игровые алгоритмы [24]
Алгоритмы, которые уже реализованы для разных жанров игр
Графика [5]
Учимся работать с графикой в Делфи
Мультимедиа [3]
Работа с мультимедийными возможностями Делфи
Другие статьи [18]
Статьи не вошедшие не в один из разделов
Ошибки [4]
Всевозможные ошибки и пути их решения
Среда, 15.05.2024, 15:30
Приветствую Вас Гость

Статьи по программированию

Главная » Статьи » Ошибки

Проблемы с массивами картинок в Делфи

Проблемы с массивами картинок в Делфи

 

 

Создание игр на делфи довольно несложный процесс. Очень часто при создании игр приходится создавать массивы картинок для хранения графики. Потому, что графика для игр – это основа основ. Особенно в современных играх. На данный момент все без исключения игры с графикой в наличии. Графика у меня хранится в массивах типа Tbitmap. А поскольку у меня не все картинки одинакового цвета, то в итоге столкнулся с проблемой. Оказывается, один массив может хранить только картинки одного размера, все картинки, которые по размеру больше – будут обрезаны.

 

Битмап в делфи был выбран как самый простой вариант для работы с графикой. У него конечно же есть свои недостатки, но мой сайт посвящен именно новичкам. Поэтому усложнять жизнь я им не собираюсь. Как говорится в поговорке: «Все гениальное просто!». И дальше я как раз и расскажу о некоторых слабостях битмап в делфи.

 

И какой же найти выход из данной ситуации? Вполне возможно, что он есть, но я перебрав море информации из просторов Интернета, ничего толкового не нашел. Сначала я пробовал при загрузке каждой картинки указывать размеры для хранения в массиве, но, оказалось, что размер оказывался прежним, то есть размером первой загруженной картинки. Тогда я попытался сделать многомерный массив и в каждый уровень массива загружать разные размеры картинок, но все тоже оказалось безрезультатно. Пробовал также не сразу загружать картинки из файла в массив. А сначала загрузить в буфер а затем на канве массива рисовать картинки, но как, Вы понимаете, безрезультатно.

 

Теперь хотелось бы поговорить о возможных выходах, которые я нашел из данной ситуации. Первый выход – для каждого размера картинок создавать отдельный массив. Это не всегда удобно, но зато если у нас есть набор картинок одного, другого и третьего размеров, то мы создадим 3 разных массивов для них. А вот если у нас куча картинок и все разного размера, то здесь этот метод оказывается малодейственным. Так как неудобно для каждой картинки создавать отдельный массив или переменную типа TBitmap.

 

Для вышеуказанной ситуации – когда есть море картинок разного размера я вижу следующий выход. Мы создаем один массив, но первой загружаем самую большую картинку, а за ней все остальные. Таким образом ни одна картинка не будет обрезана и отображаться частично. Но многие картинки будут занимать лишь верхний левый угол, а остальная часть картинки будет заполнена белым цветом. Я рекомендую загружать такие картинки с прозрачным белым цветом или любым другим. Тогда прорисовывая картинки в игре мы не увидим разницу.

 

Возможно найденные мною выходы не самые лучшие, но я не смог отыскать в Интернете даже таких. Поэтому кому эти выходы помогут – я буду рад, кому нет – ищите другие способы решения проблем с битмап в делфи. Графика для игр очень важна поэтому нужно хорошо разбираться в этой области программирования. В любом случае я всем желаю удачного создания игр и всего Вам наилучшего. Благодаря нам с Вами создание игр на делфи может стать еще популярнее и легче.

 

Источник: delgame.at.ua

Категория: Ошибки | Добавил: Armageddets (22.08.2013) | Автор: Проблемы с массивами картинок в Дел
Просмотров: 2715 | Теги: игры с графикой, битмап в delphi, Графика для игр, tbitmap delphi, delphi массив картинок, создание игр на делфи | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Наш опрос
Уроки по созданию каких игр Вам интересны?
Всего ответов: 167
Мини-чат
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0