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

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

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2010, 16:10   #451
like_cloud
Пользователь
 
Аватар для like_cloud
 
Регистрация: 09.12.2009
Сообщений: 29
По умолчанию

есть вопрос:

вывожу карту из текстового файла с 0 и 1 (для начала) в буфер (в битмап). Затем копирую ее на канву TImage. Размер минимальной клетки карты 10 на 10. размер карты 70 на 70. Все работает нормально. Если выставить значение размера карты больше 70 по любой стороне (хотя бы 71), то вылетает ошибка о каком-то неверном дескрипторе. Пожалуйста подскажите как поступить.
like_cloud вне форума Ответить с цитированием
Старый 07.05.2010, 19:20   #452
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

like_cloud, смотрите массив карты в Var, он наверное жестко прописан array[1..70, 1..70] of ...

Манжосов Денис , exe запускать не хочется, может скринчик покажешь?
Сделай условие на зажатую клавишу. Если например "w" не зажата, лепит без препятствия, если зажата, соответственно, будет препятствие.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его

Последний раз редактировалось Beermonza; 07.05.2010 в 19:26.
Beermonza вне форума Ответить с цитированием
Старый 07.05.2010, 21:11   #453
like_cloud
Пользователь
 
Аватар для like_cloud
 
Регистрация: 09.12.2009
Сообщений: 29
По умолчанию

Цитата:
Сообщение от Beermonza Посмотреть сообщение
like_cloud, смотрите массив карты в Var, он наверное жестко прописан array[1..70, 1..70] of ...
пользовался,кстати, вашим пример,данным ранее где-то в этой теме. Но решил тупо не копировать,а попытаться все обдуманно сделать сам,используя пример.

Нет там массив в 1000 элементов. Щас поэксперемнтировал: можно вывести карту суммарным размером клеток не более 141. Т.е. можно 70 и 71 , 69 и 72 и т.д. назависимо от стороны X и Y. Я "слегка" в недоумении

Последний раз редактировалось like_cloud; 07.05.2010 в 21:13.
like_cloud вне форума Ответить с цитированием
Старый 07.05.2010, 21:11   #454
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию Ответ

Спасибо, Beermonza, что откликнулись. Идея с зажатой клавишей неплохая, можно на Ctrl сделать.
А при запуске программы даже никакое окошко не вылетает? У меня запустилось всё нормально из вложения.
Скриншот редактора прилагается
like_cloud, выложите на форум проект, так будет легче разобраться в проблеме.
Изображения
Тип файла: jpg Screen.JPG (62.7 Кб, 176 просмотров)

Последний раз редактировалось Манжосов Денис :); 07.05.2010 в 21:22.
Манжосов Денис :) вне форума Ответить с цитированием
Старый 07.05.2010, 21:48   #455
like_cloud
Пользователь
 
Аватар для like_cloud
 
Регистрация: 09.12.2009
Сообщений: 29
По умолчанию

вот держите. Там все пока что сумбурно, только начинаю разбираться с этими делами. Вывод "карты" на форму по нажатию кнопки.
Заодно вопрос: когда-нибудь карта станет большой и будет кушать много ресурсов. На канву чего быстрее всего вывести ее?
Вложения
Тип файла: rar gamenew.rar (347.6 Кб, 40 просмотров)

Последний раз редактировалось like_cloud; 07.05.2010 в 21:51.
like_cloud вне форума Ответить с цитированием
Старый 07.05.2010, 22:01   #456
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию

Вот что могу сказать: для каждой клетки создаётся свой Bitmap, что очень не желательно, потому как может быть 1000 одинаковых клеток и каждой свой Bitmap, хотя картинка одна и та же. Я ещё удивился, почему так долго загружается =). Также почему нет Assign(Input, lvl); и Close(Input);? Присутствует только Reset(Input);
Код:
j*razfieldX-razfieldX, i*razfieldY-razfieldY
Не совсем понятен код: razfieldX-razfieldX, так как разность равна 0 и смысл умножать на 0? =)
Написал простой пример загрузки карты и вывода изображения карты на экран.
Вложения
Тип файла: rar Special.rar (1.1 Кб, 29 просмотров)

Последний раз редактировалось Манжосов Денис :); 07.05.2010 в 22:16.
Манжосов Денис :) вне форума Ответить с цитированием
Старый 08.05.2010, 19:05   #457
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Цитата:
Сообщение от like_cloud Посмотреть сообщение
вот держите. Там все пока что сумбурно, только начинаю разбираться с этими делами. Вывод "карты" на форму по нажатию кнопки.
Заодно вопрос: когда-нибудь карта станет большой и будет кушать много ресурсов. На канву чего быстрее всего вывести ее?
Вот тут "корень зла":

Код:
  MapX := 70;
  MapY := 70;
  razfieldX := 10;
  razfieldY := 10;
  BackBuf := TBitmap.Create;
  BackBuf.Height := (mapy)*razfieldX;
  BackBuf.Width := (mapx)*razfieldY;
Вы создаете огромный битмап, но предел для такого типа существует, в него и упираетесь. Несколько раз описывал как с этим бороться. Логикой, ...только так. Если подумать, то на экране вся карта не видна, это факт, ...так зачем ее рисовать всю и держать в памяти? Берем размер экрана и делим его на клетки карты, получается что-то в районе 100х70 для нормального всеми принятого окна 1024х768, берем немного меньше, ибо еще рамки окна и меню "пуск" должно быть видно.
Значит буфер нужен 1000х700, такой должен работать по-любому, что там у вас происходит я не в курсе, если такой не тянет.
Теперь, мы работаем "в цифре", загружаем карту любого размера в массив карты любого размера (предела). Когда нужно отрисовать экран, мы берем диапазон из массива и готовим подложку в буфер. Т.е. нужно начало выборки и размер на экран, делаем цикл и рисуем кусочки в буфер.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 08.05.2010, 21:46   #458
like_cloud
Пользователь
 
Аватар для like_cloud
 
Регистрация: 09.12.2009
Сообщений: 29
По умолчанию

Цитата:
Сообщение от Beermonza Посмотреть сообщение
Вот тут "корень зла":


Вы создаете огромный битмап, но предел для такого типа существует, в него и упираетесь. <....>
дале-то в том,что минимальная клетка карты 10 пикселей. размер карты можем сделать 70 на 71 (или наоборот) клеток. Получается 700 на 710 пикселей. Где-то четверть экрана,никак не весь(
like_cloud вне форума Ответить с цитированием
Старый 08.05.2010, 23:06   #459
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Цитата:
Сообщение от like_cloud Посмотреть сообщение
дале-то в том,что минимальная клетка карты 10 пикселей. размер карты можем сделать 70 на 71 (или наоборот) клеток. Получается 700 на 710 пикселей. Где-то четверть экрана,никак не весь(
Очень странно, ...может у вас ошибка в файле карты? ...натыкается на 4970-й символ и не может загрузить картинку, такой просто нет. Кстати, переход на следующую строку - тоже байт, он будет считан командой Read.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 11.05.2010, 14:56   #460
like_cloud
Пользователь
 
Аватар для like_cloud
 
Регистрация: 09.12.2009
Сообщений: 29
По умолчанию

Цитата:
Сообщение от Beermonza Посмотреть сообщение
Очень странно, ...может у вас ошибка в файле карты? ...натыкается на 4970-й символ и не может загрузить картинку, такой просто нет. Кстати, переход на следующую строку - тоже байт, он будет считан командой Read.
карта состоит из текста типа "0 1 0 0 0 0 0 1[переход на след. строку]". Получается,если где-то стоит еще пробел вконце строки,То это может быть ошибкой?
..........
проверил карту, был лишний пробел в конце строки. Убрал,все равно ошибка. Сделал новую карту,проверил ее - все равно ошибка. И именно на если карта больше 70 на 71 клетки..

Последний раз редактировалось like_cloud; 11.05.2010 в 15:00.
like_cloud вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хорошие уроки Render Общие вопросы Delphi 9 15.09.2012 07:13
Акцесс вопросы новичков Yaga Помощь студентам 4 02.06.2008 00:16
Учебники для новичков в програмировании Рар Общие вопросы Delphi 6 08.01.2007 08:07