Очередной глюк или кривые руки?

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Очередной глюк или кривые руки?

Сообщение trexxet » 07.04.2013 22:33:17

Здравствуйте. Для простенькой игры пишу небольшой редактор карт. Карта представляет из себя квадрат из 8х8 тайлов. Всего имеется 8 видов тайлов. У них есть несколько параметров: Obstacle (препятствие, через которое можно стрелять), Wall (стена), Destroyable (стена/препятствие разрушимо), ID (вид тайла) и картинка (пока не реализована, да и не нужна в редакторе). Если Wall и Obstacle ложны, то это обычная земля/пол. Карта хранится в файле n.map.
Проблема такова: после заполнения таблицы (в ней в клетках указывается ID тайла в этом месте карты) и установки параметров слева жму кнопку "Сохранить". Если, не закрывая редактор, нажать "Загрузить", то все заработает без проблем. Но если закрыть редактор, открыть и нажать "Загрузить", то в случае запуска через Lazarus получиться беспорядочный набор чисел, в случае запуска .exe будет ошибка "Access violation". Помогите, пожалуйста, разобраться с этой проблемой, т.к. она довольно странная и ошибки в коде я не вижу.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
trexxet
новенький
 
Сообщения: 31
Зарегистрирован: 25.03.2013 22:58:00
Откуда: Смоленск

Re: Очередной глюк или кривые руки?

Сообщение xdsl » 07.04.2013 23:56:51

Вы неправильно сохраняете и считываете экземпляры класса TTlile. По сути Вы сохраняете и считываете указатели (см. размер файла n.map)
Если хотите работать с объектами, пользуйтесь для хранения классом Tfilestream. В этом случае придется порождать их от TComponent.
xdsl
постоялец
 
Сообщения: 131
Зарегистрирован: 15.01.2009 13:49:03

Re: Очередной глюк или кривые руки?

Сообщение trexxet » 08.04.2013 20:22:32

Спасибо. Решил сделать TTile не классом, а записью, и в игре сделать перевод из записи в класс.
trexxet
новенький
 
Сообщения: 31
Зарегистрирован: 25.03.2013 22:58:00
Откуда: Смоленск


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 242

Рейтинг@Mail.ru
cron