Помогите.. не могу заставить работать цикл взаимодействия с картой. Урок 11

SFML и C++ Уроки \ Разработка игр Форумы SFML Graphics Помогите.. не могу заставить работать цикл взаимодействия с картой. Урок 11

В этой теме 3 ответа, 2 участника, последнее обновление  maminev 6 года/лет, 7 мес. назад.

Просмотр 4 сообщений - с 1 по 4 (из 4 всего)
  • Автор
    Сообщения
  • #4866

    maminev
    Участник
    Сообщений:5

    Зарегистрирован:
    26.08.2017

    Репутация:1

    Привет всем! Такая проблема. Начал изучать уроки и после того как дошел до 11 го… не могу продвинуться. Не запускается игра.

    Учусь писать код в CODE BLOCKS. В самом начале пробывал писать код как описывается в самом уроке… программа компилировалась но при запуске exe вылетала ошибка. до этого цикла все работало..

    В уроке было написано создать функцию метод внутри класса плеер которая обрабатывала столкновения с картой а затем уже сама же функция вызывала другой метод этого же класса и при этом все конечно скомпилировалось но не запускается…

    Попробывал другой способ вынес функцию за пределы класса …  создал класс и в виде указателя передал его этой функции и уже динамически по адресам начал проверять условия столкновения с картой и соответственно попробывал поменять значения в них по тому же алгоритму….   программа запускается  но вылетяет с ошибкой ошибка не соответствие данных памяти..

     

    void interactionWithMap(Player * object)
    {
    for (int i = object -> getPlayerCoordinateY() / 20; i < (object -> getPlayerCoordinateY() + object -> h)/20; i++)
    for (int j = object -> getPlayerCoordinateX() / 20; i < (object -> getPlayerCoordinateX() + object -> w)/20; j++)
    {
    if (TileMap[i][j]==’0′)
    {
    if (object -> dy>0) {object->setPlayerCoordinateY (i * 20 – object -> h);}
    if (object -> dy<0) {object->setPlayerCoordinateY (i * 20 + 20);}
    if (object -> dx>0) {object->setPlayerCoordinateX (j * 20 – object -> w);}
    if (object -> dx<0) {object->setPlayerCoordinateY (j * 20 + 20);}
    }
    if (TileMap[i][j] == ‘s’) { object ->setPlayerCoordinateX (300); object -> setPlayerCoordinateY (300); TileMap[i][j] = ‘-‘; }

    }
    };

     

    УЖе не знаю что делать…

    Вложения:
    You must be logged in to view attached files.
    #4870
    +1

    KindRedSand
    Участник
    Сообщений:82

    Зарегистрирован:
    05.04.2017

    Репутация:30

    Вобще для кода на сайте есть специальный модуль – пожалуйста, пользуйся им а не сливай свои файлы – хидеры.
    Вылетает ошибка – скриншот с содержимым приложить?
    В каком месте ты вызываешь этот метод? Точно ли ты передаёшь в качестве аргумента ссылку на игрока в момент вызова?

    #4876

    maminev
    Участник
    Сообщений:5

    Зарегистрирован:
    26.08.2017

    Репутация:1

    Спасибо  разобрался оказывается проблема в том что  в конце работы не освобождалась динамическая память…

    Все решилось использованием ссылок на обьект класса Плеер… сразу заработало.

    #4879

    maminev
    Участник
    Сообщений:5

    Зарегистрирован:
    26.08.2017

    Репутация:1

    Помогите в теме Organi решение графических задач!

Просмотр 4 сообщений - с 1 по 4 (из 4 всего)

Для ответа в этой теме необходимо авторизоваться.