Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
простоВадим
2 / 2 / 0
Регистрация: 04.08.2013
Сообщений: 69
#1

Ошибка в Visual Studio - C++

20.10.2013, 17:32. Просмотров 449. Ответов 10
Метки нет (Все метки)

Привет всем) Я нуб в игрострое) Помогите мне с проблемкой. Делал игру на Visual Studio 2010 Pro по этому уроку (https://www.youtube.com/watch?v=6OHMFwQK44k). Дошел до создания карты. Сделал код как в уроке(мой код есть во вложении 123). Запустил и появилось это (вложение "не" и открылся код(вложение "щш")) Как это исправить??? Заранее большое спасибо
Миниатюры
Ошибка в Visual Studio   Ошибка в Visual Studio  
Вложения
Тип файла: txt 123.txt (4.1 Кб, 6 просмотров)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.10.2013, 18:31     Ошибка в Visual Studio #2
Где-то выход за границу строки.
простоВадим
2 / 2 / 0
Регистрация: 04.08.2013
Сообщений: 69
20.10.2013, 18:47  [ТС]     Ошибка в Visual Studio #3
Извините я новичок можно поподробней
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.10.2013, 18:53     Ошибка в Visual Studio #4
Вот так перепишите:
C++
1
2
3
4
5
6
7
8
9
10
11
12
for (int i = 0; i < H; i++)
            for (int j = 0; j < TileMap[i].getSize(); j++)
            {
                if (TileMap[i][j] =='B') rectangle.setFillColor(Color::Black);
 
                if (TileMap[i][j] =='0') rectangle.setFillColor(Color::Green);
 
                if (TileMap[i][j] ==' ') continue;
            
                rectangle.setPosition(j*32,i*32);
                window.draw(rectangle);
            }
У вас, в массиве строк, есть строки (первая, последняя), которые короче чем 40 символов, поэтому в цикле происходит выход за границу строки.
простоВадим
2 / 2 / 0
Регистрация: 04.08.2013
Сообщений: 69
20.10.2013, 19:12  [ТС]     Ошибка в Visual Studio #5
Спасибо заработало)) но чето не отрисовывает мою карту) буду исправлять

Добавлено через 10 минут
Если кто то знает почему карта из массива не отображается помогите)
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.10.2013, 20:21     Ошибка в Visual Studio #6
C++
1
RectangleShape rectangle(Vector2f(32, 32));
простоВадим
2 / 2 / 0
Регистрация: 04.08.2013
Сообщений: 69
20.10.2013, 21:25  [ТС]     Ошибка в Visual Studio #7
черт) спасибо тебе от душы) Теперь все будет))

Добавлено через 1 час 0 минут
На этом коде тоже самое(( Как его переделать???

void CollisionX()
{
for (int i = rect.top/32; i < (rect.top + rect.height)/32; i++)
for (int j = rect.left/32; j < (rect.left + rect.width)/32; j++)
{

if (TileMap[i][j] == 'B')
{
if (dx>0) rect.left = j*32 - rect.width;
if (dx<0) rect.left = j*32 + 32;
}
}
}

void CollisionY()
{
for (int i = rect.top/32; i < (rect.top + rect.height)/32; i++)
for (int j = rect.left/32; j < (rect.left + rect.width)/32; j++)
{

if (TileMap[i][j] == 'B')
{
if (dx>0) { rect.left = i*32 - rect.height; dy=0; onGround = true; }
if (dx<0) { rect.top = i*32 + 32; dy=0;}
}
}
}
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.10.2013, 21:32     Ошибка в Visual Studio #8
Цитата Сообщение от простоВадим Посмотреть сообщение
На этом коде тоже самое
То же самое, что?
простоВадим
2 / 2 / 0
Регистрация: 04.08.2013
Сообщений: 69
20.10.2013, 21:36  [ТС]     Ошибка в Visual Studio #9
ошибка как и в первом примере((
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.10.2013, 21:41     Ошибка в Visual Studio #10
rect.top, rect.left, rect.height, rect.width - что это?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.10.2013, 11:38     Ошибка в Visual Studio
Еще ссылки по теме:

Ошибка или баг Visual Studio 2015? C++
C++ Ошибка установки Visual Studio 2015
C++ Visual Studio LightSwitch, ошибка с загрузкой символов
C++ Ошибка LNK 2019 - C++ (Visual Studio 2011)
Ошибка LNK1561/Visual Studio/ С++ C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
простоВадим
2 / 2 / 0
Регистрация: 04.08.2013
Сообщений: 69
21.10.2013, 11:38  [ТС]     Ошибка в Visual Studio #11
Для создания обьекта в игре я использую квадрат(rect) 64*64. rect.left его левый угол и т.д

Добавлено через 12 часов 27 минут
Я понял в чем была проблема) Как было сказана тут
Цитата Сообщение от alsav22 Посмотреть сообщение
Где-то выход за границу строки.
Ошибка возникает из за не правильного построения массива.

String TileMap[H] = {

"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
"B B",
"B B",
"B B",
"B B",
"B 000000 B",
"B B",
"BBB B",
"B B B",
"B B B",
"B B B",
"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",

};

Все буквы B отвечающие за отрисовку карты должны бить строго в рамках 12*40. Если этого не будет, будет ошибка

Добавлено через 1 час 23 минуты
И еще вот что, таким нубам как я)) В программировании очень важно как расположены строчки кода. Пример:

if (!onGround) dy=dy+0.0005*time;
rect.top += dy*time;
CollisionY();
onGround=false;

строчка Collision находиться перед строчкой onGround, так работать не будет((


if (!onGround) dy=dy+0.0005*time;
rect.top += dy*time;
onGround=false;
CollisionY();

Так работать будет)))
Yandex
Объявления
21.10.2013, 11:38     Ошибка в Visual Studio
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru