Касание игрока с врагом, помогите

SFML и C++ Уроки \ Разработка игр Форумы SFML Graphics Касание игрока с врагом, помогите

Помечено: 

В этой теме 3 ответа, 2 участника, последнее обновление  KindRedSand 2 дн., 21 час. назад.

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

    spoty76
    Участник
    Сообщений:9

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

    Репутация:2

    Вообщем ничего не понимаю, я перепроверял всю программу, пробовал разные альтернативы, ничего не помогло, вообщем в 23 уроке сделал команды:

    Проблема в том, что при старте игры (игрок спавнится достаточно далеко от врага, ну я говорю про p.sprite;) у меня получается начинает все время срабатывать эти команды, игрок сразу умирает и в выведение здоровья очень быстро отнимаются жизни по 25 (p.health -= 25;), я перепроверил карту, враги расположены правильно, соответствуют своим координатам вот весь мой код:

    На всякий случай уточню, игрок не пересекается с врагом, все начинается сразу при запуске, и враги исчезают с карты, если же я уберу команду пересечения (for it entities… if *it->getRect.intersects) то все будет работать нормально, в чем проблема?

    #4583
    +1

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

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

    Репутация:10

    Вобще – учитесь с самого начала пользоватся дебагом, гораздо упрощает жизнь в отлове ошибок. Понаставляйте отметок останова в циклах и через шаг с обходом смотрите на каком моменте игрок теряет хп даже не пересекаясь.
    И не проще вместо
    sprite.setPosition(x+w/2,y+h/2);
    использовать единожды в конструкторе
    sprite.setOrigin(w/2,h/2);
    и дальше спокойно использовать sprite.setPosition(x,y);

    #4584

    spoty76
    Участник
    Сообщений:9

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

    Репутация:2

    Расскажите, как пользоваться дебагом, потому что в интернете есть только вопроссы про компиляцию в проекте в режиме релиз и дебаг, что за отметки мне стоит выставлять? Я пока не очень понимаю

    #4585

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

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

    Репутация:10

    Точки дебаг останова активируются нажатием ЛКМ в столбце напротив строки где нужно вызвать ‘паузу’ приложения.
    Студия в момент дебаг остнова. Думаю не нужно обьяснять что делает кнопка продолжить. Убрать точку останова можно так же как и поставили – ЛКМ по ней.

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

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