Взаимодействие игрока со стеной

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

В этой теме 0 ответов, 1 участник, последнее обновление  Nival 4 мес., 3 нед. назад.

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

    Nival
    Участник
    Сообщений:0

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

    Репутация:0

    Привет, небольшой вопрос по SFML , у меня есть карта из 1 и W, в цикле обработки смотрит если 1 то рисую спрайт травы если W то спрайт стены, при движении я прописал что
    if(!objSprite.getGlobalBounds().intersects(s_breakablewall.getGlobalBounds()) , где objsprite спрайт игрока, когда запускаю игру оно реагирует только на одну из построенных стен а сквозь остальные спокойно едет, не подскажете в чем ошибка?

    Карты отрисовка

    P.S траву всегда рисую чтоб стена поверх нее была а не на черном квадрате
    for (int i = 0; i < Y; i++){
    for (int j = 0; j < X; j++){
    s_grass.setPosition(j * 64, i * 64);
    window.draw(s_grass);
    switch (Map[i][j]){
    case’w':
    s_breakablewall.setPosition(j * 64, i * 64);
    window.draw(s_breakablewall);
    break;

    Движение

    if (!objSprite.getGlobalBounds().intersects(s_breakablewall.getGlobalBounds())){
    switch (rotation){
    case’r':
    objSprite.setRotation(0);
    objSprite.move(0.2, 0);
    break;
    case’l':
    objSprite.move(-0.2, 0);
    objSprite.setRotation(180);
    break;
    case’u':
    objSprite.move(0, -0.2);
    objSprite.setRotation(270);
    break;
    case’d':
    objSprite.move(0, 0.2);
    objSprite.setRotation(90);
    break;
    }
    }
    else{
    switch (rotation){
    case’r':
    objSprite.move(-0.2, 0);
    break;
    case’l':
    objSprite.move(0.2, 0);
    break;
    case’u':
    objSprite.move(0, 0.2);
    break;
    case’d':
    objSprite.move(0, -0.2);
    break;
    }
    }
    return objSprite;

     

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

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