|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.05.2010, 16:10 | #451 |
Пользователь
Регистрация: 09.12.2009
Сообщений: 29
|
есть вопрос:
вывожу карту из текстового файла с 0 и 1 (для начала) в буфер (в битмап). Затем копирую ее на канву TImage. Размер минимальной клетки карты 10 на 10. размер карты 70 на 70. Все работает нормально. Если выставить значение размера карты больше 70 по любой стороне (хотя бы 71), то вылетает ошибка о каком-то неверном дескрипторе. Пожалуйста подскажите как поступить. |
07.05.2010, 19:20 | #452 |
Инженер ИС
Старожил
Регистрация: 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. |
07.05.2010, 21:11 | #453 | |
Пользователь
Регистрация: 09.12.2009
Сообщений: 29
|
Цитата:
Нет там массив в 1000 элементов. Щас поэксперемнтировал: можно вывести карту суммарным размером клеток не более 141. Т.е. можно 70 и 71 , 69 и 72 и т.д. назависимо от стороны X и Y. Я "слегка" в недоумении Последний раз редактировалось like_cloud; 07.05.2010 в 21:13. |
|
07.05.2010, 21:11 | #454 |
Участник клуба
Регистрация: 29.01.2008
Сообщений: 1,039
|
Ответ
Спасибо, Beermonza, что откликнулись. Идея с зажатой клавишей неплохая, можно на Ctrl сделать.
А при запуске программы даже никакое окошко не вылетает? У меня запустилось всё нормально из вложения. Скриншот редактора прилагается like_cloud, выложите на форум проект, так будет легче разобраться в проблеме. Последний раз редактировалось Манжосов Денис :); 07.05.2010 в 21:22. |
07.05.2010, 21:48 | #455 |
Пользователь
Регистрация: 09.12.2009
Сообщений: 29
|
вот держите. Там все пока что сумбурно, только начинаю разбираться с этими делами. Вывод "карты" на форму по нажатию кнопки.
Заодно вопрос: когда-нибудь карта станет большой и будет кушать много ресурсов. На канву чего быстрее всего вывести ее? Последний раз редактировалось like_cloud; 07.05.2010 в 21:51. |
07.05.2010, 22:01 | #456 |
Участник клуба
Регистрация: 29.01.2008
Сообщений: 1,039
|
Вот что могу сказать: для каждой клетки создаётся свой Bitmap, что очень не желательно, потому как может быть 1000 одинаковых клеток и каждой свой Bitmap, хотя картинка одна и та же. Я ещё удивился, почему так долго загружается =). Также почему нет Assign(Input, lvl); и Close(Input);? Присутствует только Reset(Input);
Код:
Написал простой пример загрузки карты и вывода изображения карты на экран. Последний раз редактировалось Манжосов Денис :); 07.05.2010 в 22:16. |
08.05.2010, 19:05 | #457 | |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Цитата:
Код:
Значит буфер нужен 1000х700, такой должен работать по-любому, что там у вас происходит я не в курсе, если такой не тянет. Теперь, мы работаем "в цифре", загружаем карту любого размера в массив карты любого размера (предела). Когда нужно отрисовать экран, мы берем диапазон из массива и готовим подложку в буфер. Т.е. нужно начало выборки и размер на экран, делаем цикл и рисуем кусочки в буфер.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
|
08.05.2010, 21:46 | #458 |
Пользователь
Регистрация: 09.12.2009
Сообщений: 29
|
дале-то в том,что минимальная клетка карты 10 пикселей. размер карты можем сделать 70 на 71 (или наоборот) клеток. Получается 700 на 710 пикселей. Где-то четверть экрана,никак не весь(
|
08.05.2010, 23:06 | #459 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Очень странно, ...может у вас ошибка в файле карты? ...натыкается на 4970-й символ и не может загрузить картинку, такой просто нет. Кстати, переход на следующую строку - тоже байт, он будет считан командой Read.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
11.05.2010, 14:56 | #460 | |
Пользователь
Регистрация: 09.12.2009
Сообщений: 29
|
Цитата:
.......... проверил карту, был лишний пробел в конце строки. Убрал,все равно ошибка. Сделал новую карту,проверил ее - все равно ошибка. И именно на если карта больше 70 на 71 клетки.. Последний раз редактировалось like_cloud; 11.05.2010 в 15:00. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Хорошие уроки | Render | Общие вопросы Delphi | 9 | 15.09.2012 07:13 |
Акцесс вопросы новичков | Yaga | Помощь студентам | 4 | 02.06.2008 00:16 |
Учебники для новичков в програмировании | Рар | Общие вопросы Delphi | 6 | 08.01.2007 08:07 |