SFML и C++ Уроки \ Разработка игр › Форумы › SFML Graphics › Ошибка _p!=nullptr. Урок 22
В этой теме 3 ответа, 3 участника, последнее обновление Artvan 4 года/лет, 10 мес. назад.
-
АвторСообщения
-
Библиотеки все собраны безошибочно, урок 22 и сама карта автора работают тоже без ошибок. Но тут попытался загрузить собственную карту. При сборке решения ошибок нет, ошибка вылазит только при запуске. Отладка ругается на строчку на втором скрине. Код полностью из 22 урока, своего ничего нет, да :D. Карта лежит рядом с main, а тайл там же, только в папке images.
Вложения:
You must be logged in to view attached files.Встала ребром эта проблема и у меня!
Павел, помогите, будьте добры!Проблема вызвана новой версией редактора карт. Решается использованием более старой версии 0.11
Проблема решается заменой <tile/> на <tile gid=”0″/> в файле карты. Если вы используете последнюю версию tinyXML2 + Tiled то необходимо будет пошаманить с кодом. После 2 дней борьбы мне удалось сделать рабочий код.
Строки
C++123TiXmlDocument levelFile(filename.c_str());//загружаем файл в TiXmlDocument// загружаем XML-картуif (!levelFile.LoadFile())//если не удалось загрузить картуменяем на
C++123tinyxml2::XMLDocument levelFile; //Загружаем файл// Загружаем XML-картуif (levelFile.LoadFile(filename.c_str())) //Если не удалось загрузить картуВсе слова TiXmlElement меняем на tinyxml2::XMLElement
Строки
C++123// работа со слоямиTiXmlElement *layerElement;layerElement = map->FirstChildElement("layer");меняем на
C++12345// Работа со слоямиtinyxml2::XMLElement *groupElement;groupElement = map->FirstChildElement("group");tinyxml2::XMLElement *layerElement;layerElement = groupElement->FirstChildElement("layer");Посмотрите если у вас в файле *tmx присутствует тэг “group” (в своей карте я группировал слои)
Строки
C++123456// работа с объектамиTiXmlElement *objectGroupElement;// если есть слои объектовif (map->FirstChildElement("objectgroup") != NULL){objectGroupElement = map->FirstChildElement("objectgroup");меняем на
C++123456// Работа с объектамиtinyxml2::XMLElement *objectGroupElement;// Если есть слои объектовif (groupElement->FirstChildElement("objectgroup") != NULL){objectGroupElement = groupElement->FirstChildElement("objectgroup");Если делаете свою карту в Tiled формат слоя тайлов необходимо выбрать XML и не переворачивайте тайлики, ибо у меня от этого gid = восьмизначному числу и прога крашилась!
Вложения:
You must be logged in to view attached files. -
АвторСообщения
Для ответа в этой теме необходимо авторизоваться.