Если функцию tileTex[int].load(char*) напрямую выполнить (безо всяких считываний из файла), то всё ок.
Добавлено (30.06.2014, 13:43) --------------------------------------------- Кстати, а в каждом элементе string-массива может ли быть символ конца строки в этом случае (\n)? Если да, то как его избежать. Ведь заношу инфу в стринги таким образом. file>>input[i];
Добавлено (30.06.2014, 14:55) --------------------------------------------- а не, всё-таки энд-лайна нет в стрингах. input[i].length() показывает в консольке ровно то же кол-во символов, сколько и видно их в той же самой консольке невооружённым глазом.
Сообщение отредактировал Alkosha - Понедельник, 30 Июня 2014, 22:19
Alkosha, первое что бросается в глаза, ты не предпринимаешь никаких действий, если файла такого нету, т.е считать ты его не смог, а что-то делать с пустой информацией пытаешься.
Код
private: int j=0;
Это как? Разве можно инициализировать переменные в классе сразу после их объявления? Надо сделать конструктор.
Чему тут изначально равно j? Как я понял нулю, так как до этого ты использовал в циклах локальных переменные j, а глобальная ни как не менялась, вот и получается что хочешь получиться число из "res", а потом ещё и значение по этому индексу. Скорее всего тут и вылетает. FinderX - Android Аркада
Сообщение отредактировал goldsphere - Понедельник, 30 Июня 2014, 20:38
первое что бросается в глаза, ты не предпринимаешь никаких действий, если файла такого нету, т.е считать ты его не смог, а что-то делать с пустой информацией пытаешься.
это второстепенное. Ибо до перехода в функцию deshifrator() все считанные строки отображаются в консоли.
Добавлено (30.06.2014, 22:35) --------------------------------------------- ага.... только щас дошло по скриншотам. Что в этом цикле он шпарит дальше, чем я расчитывал.
Она и так у тебя как член класса была объявлена, т.е по отношению к методам она как бы глобальная, я , просто, неправильно выразился FinderX - Android Аркада
Сообщение отредактировал goldsphere - Вторник, 01 Июля 2014, 05:22
Изначально итерация индекса стрингов j происходила до вызова метода priemResursov(), но когда я j++ перенёс в этот самый priemResursov(), while перестал перескакивать. Теперь картинки грузит как и положено... но, теперь застопорился на установке координат этих картинок. Как теперь из стрингов убрать запятые(либо иные разделительные знаки) и разделить на отдельные числа... похоже, плохая затея со стрингами. Нужно наверное посимвольно считывать, и тут же на ходу интерпретировать. Но пока не знаю как.
Сообщение отредактировал Alkosha - Вторник, 01 Июля 2014, 22:09
Есть бинарник, написаный на C++, сурсов нету. Подскажите, каким софтом возможно переписать часть данный в нем с добавлением свободных байтов, через обычный hex-редактор (например UltraEdit) не получается добавить, бинарник потом не запускается
geralex, если что это вопрос не имеет никакого отношения к С++ Мои проекты: - Свободный и открытый клон World Of Goo - TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)
Так-с. Ресурсы и координаты удалось загрузить. теперь карту коллизии бы туда же. А то она до сих пор в исполняемой программе находится. В следующем виде:
Код
static const int maplen = 20; char *bitmap[maplen]= {
//и тут фиксированное кол-во строк через запятую "....",
}
Когда построчно то же самое считываю из файла, всё ок. Затем пытаюсь сконвертить в char* - происходит какая-то ерунда. В консоли cout отображает всякие кракозябры, после чего выбивает из программы.
Alkosha, вылетает сразу или через несколько пароходов по циклу? Проблема явно в выходе за границы массива. Проверь чему равно j, и не больши ли оно чем нужно FinderX - Android Аркада
Сообщение отредактировал goldsphere - Четверг, 10 Июля 2014, 23:35
Конкретно вот в этой штуке загвоздка. Код btmap[mapln]=(char*)input[j].c_str();
Это не следует делать, ты хранишь указатели которыми управляет другой объект, он их может изменить. Надо не указатели сохранять, а массив данных на который ссылается указатель, или на худой конец индексы.
ведь функция вообще кроме вывода строк ничего не делает. Мои проекты: - Свободный и открытый клон World Of Goo - TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)
[GameMaker: Studio v1.4.9999]
Сообщение отредактировал OpenGOO - Пятница, 11 Июля 2014, 14:28
Мне надо то же самое, считанное с файла поместить в подобный массив. Так как я файл уже начал считывать построчно, то и эти строки соответственно нужно каким-то образом впихнуть в область, куда ссылаются указатели.
Сообщение отредактировал Alkosha - Пятница, 11 Июля 2014, 22:08
Только потом не забудь освободить выделенную память.
Советую тебе открыть книгу по с++ и изучить главы работы с массивами и строками. Мои проекты: - Свободный и открытый клон World Of Goo - TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)
[GameMaker: Studio v1.4.9999]
Сообщение отредактировал OpenGOO - Суббота, 12 Июля 2014, 11:49