63 / 35 / 25
Регистрация: 17.07.2014
Сообщений: 457
|
|
1 | |
SFML баг в программе24.11.2015, 19:33. Показов 1877. Ответов 8
Метки нет (Все метки)
Помогите с проблемкой.
Ниже исходники прикрепил, проект VS. Проблема в чем: поставьте много много башень и посмотрите, как зависают пули, которые не долетают до цели, которую уже уничтожили. Я делаю так: для каждой пули делаю ссылку на обьект типа ВРАГ, и каждый раз когда рисую, проверяю, жив ли он. Если уже убит, а пуля не долетела, то удалить пулю из листа и не отображать. Но они почему-то отображаются, то есть условие (it->chosen_enemy) всегда true. Почему если я удаляю врагов из листа типа враги, ссылки на удаленные обьекты не становятся NULL ???
0
|
24.11.2015, 19:33 | |
Ответы с готовыми решениями:
8
Sfml. Не могу найти ошибку в программе Баг в программе. Без цикла работает нормально. С циклом выдает баг Баг в программе Баг в программе |
63 / 35 / 25
Регистрация: 17.07.2014
Сообщений: 457
|
|
24.11.2015, 19:43 [ТС] | 2 |
Исправил проверкой при удалении врага: в цикле все пули, которые указывают на него, автоматически получают nullptr. Проблемка еще есть одна маленькая:
Иногда пули если поставить много башень стреляют куда то в небо. Кому не лень, пожалуйста попробуйте. И да, обновленный main.cpp
0
|
63 / 35 / 25
Регистрация: 17.07.2014
Сообщений: 457
|
|
24.11.2015, 20:01 [ТС] | 3 |
Вот поймал кадр как летит вверх влево. Почему такое может быть?
И вообще только что вылетела программа после того кк другая пуля тоже ушла в неизвестном направлении... Типа за пределы памяти обращаюсь.. Откуда эти ошибки???
0
|
63 / 35 / 25
Регистрация: 17.07.2014
Сообщений: 457
|
|
24.11.2015, 20:10 [ТС] | 4 |
Вот такое вылетает после где то минуты игры. Пишет проблема в строчке где я рисую пули
0
|
Неэпический
|
|||||||||||
24.11.2015, 21:40 | 5 | ||||||||||
Сообщение было отмечено maxm как решение
Решение
у меня сразу segfault при установке башни.
Добавлено через 10 минут такс, это исправил, добавил chosen_enemy(0) в список инициализации конструктора класса Tower. Добавлено через 4 минуты Дальнейший просмотр кода выявил UB: В цикле при проходе списка enemies, есть такой фрагмент:
А так респект за старания, обычно здесь выкладывают задания "напишите игру", а не "помогите найти ошибку в моей игре" Добавлено через 2 минуты Вот почему то при запуске этой игры у меня дросселя начинают свистеть в системнике Добавлено через 39 минут Ой, исправил еще пару ошибок такого же плана, появились баги
1
|
63 / 35 / 25
Регистрация: 17.07.2014
Сообщений: 457
|
|
24.11.2015, 21:49 [ТС] | 6 |
Вот же блин, есть правило: работает - не трогай !!!
А так то спасибо Не знал от такой конструкции Добавлено через 3 минуты А что дает в этом случае такая правка? Почему без нее не работает то?
0
|
63 / 35 / 25
Регистрация: 17.07.2014
Сообщений: 457
|
|
24.11.2015, 22:14 [ТС] | 7 |
А, ну и да.. вот вам готовая, поиграть на досуге )))
Сяду за тетрис пока
0
|
Неэпический
|
|
24.11.2015, 22:20 | 8 |
Проблема в том, что весь код в куче, мест, где может быть зарыта ошибка - тоже.
Сейчас имеем одну большую портянку, плюс ко всему форматирование хромает сильно и имена переменных (особенно итераторов, не разберешь где какой it). Разбейте код на функции, выполняющие свои задачи, тогда можно более эффективно работать с кодом, да и код сам станет меньше и нагляднее
0
|
63 / 35 / 25
Регистрация: 17.07.2014
Сообщений: 457
|
|
25.11.2015, 20:40 [ТС] | 9 |
Да а как разбить тут?
Так ведь прийдеться для функций передавать кучу параметров, например делаю то же перемещение башни по карте - там используются все переменные практически, нужно передать параметров 10 штук. Или можно обьявить все глобальными вне main-функц. и после их обьявления обьявлять функции ?
0
|
25.11.2015, 20:40 | |
25.11.2015, 20:40 | |
Помогаю со студенческими работами здесь
9
Баг в программе Баг в программе Исправить баг в программе Баг в готовой программе Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |