Ошибка вывода персонажа на карту.

SFML и C++ Уроки \ Разработка игр Форумы SFML Graphics Ошибка вывода персонажа на карту.

В этой теме 13 ответов, 3 участника, последнее обновление Павел Букреев Павел Букреев 8 года/лет, 6 мес. назад.

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

    Aspirin193
    Участник
    Сообщений:7

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

    Репутация:0

    Добрый день, форумчане!

    У меня была проблема с 8 уроком – не мог инициализировать переменную в класе  – сделал в конструкторе – получилось!

    Но теперь такая фигня – спрайт персонажа не выводится…интересно то, что я писал код из 9 урока(+ карта)  и спрайт карты работает!!!

    Тоисть спрайт персонажа не выводит, спрайт карты – выводит!

    Подскажите, что мне делать…спасибо =)

    #1844
    Павел Букреев
    Павел Букреев
    Хранитель
    Сообщений:582

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

    Репутация:106

    может ты рисуешь карту поверх персонажа? попробуй рисование местами поменять

    #1845

    Aspirin193
    Участник
    Сообщений:7

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

    Репутация:0

    Тоисть? Как именно?

    #1846

    Aspirin193
    Участник
    Сообщений:7

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

    Репутация:0

    Извините, я просто еще  с++ а именно в SFML не бум бум))

    #1847

    Aspirin193
    Участник
    Сообщений:7

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

    Репутация:0

    {
    if (TileMap[i][j] == ‘ ‘) s_map.setTextureRect(IntRect(0, 0, 32, 32));
    if (TileMap[i][j] == ‘s’) s_map.setTextureRect(IntRect(32, 0, 32, 32));
    if ((TileMap[i][j] == ‘0’)) s_map.setTextureRect(IntRect(64, 0, 32, 32));

    s_map.setPosition(j * 32, i * 32);
    window.draw(p.sprite);
    window.draw(s_map);

    }

     

    писал так – не получается…

    #1850
    Павел Букреев
    Павел Букреев
    Хранитель
    Сообщений:582

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

    Репутация:106

    window.draw (персонаж.спрайт);

    window.draw (карта.спрайт);

    в зависимости от того, какая из строк выше происходит наложение слоёв.

    ещё одна причина – посмотри координаты появления персонажа х и у в самом начале при появлении персонажа

    #1860

    Aspirin193
    Участник
    Сообщений:7

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

    Репутация:0

    for (int i = 0; i < HEIGHT_MAP; i++)
    for (int j = 0; j < WIDTH_MAP; j++)
    {
    if (TileMap[i][j] == ‘ ‘) s_map.setTextureRect(IntRect(0, 0, 32, 32));
    if (TileMap[i][j] == ‘s’) s_map.setTextureRect(IntRect(32, 0, 32, 32));
    if ((TileMap[i][j] == ‘0’)) s_map.setTextureRect(IntRect(64, 0, 32, 32));

    s_map.setPosition(j * 32, i * 32);

    }

    window.draw(p.sprite);
    window.draw(s_map);
    window.display();
    }

    return 0;
    }

    перенес всё так – не видит ни карты, ни персонажа…

    #1861

    Aspirin193
    Участник
    Сообщений:7

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

    Репутация:0

    for (int i = 0; i < HEIGHT_MAP; i++)
    for (int j = 0; j < WIDTH_MAP; j++)
    {
    if (TileMap[i][j] == ‘ ‘) s_map.setTextureRect(IntRect(0, 0, 32, 32));
    if (TileMap[i][j] == ‘s’) s_map.setTextureRect(IntRect(32, 0, 32, 32));
    if ((TileMap[i][j] == ‘0’)) s_map.setTextureRect(IntRect(64, 0, 32, 32));

    s_map.setPosition(j * 32, i * 32);

    window.draw(p.sprite);
    window.draw(s_map);

    }

    window.display();
    }

    return 0;
    }

     

     

    зделал так – видно только карту…HELP…SOS…HELP

    #1864
    Павел Букреев
    Павел Букреев
    Хранитель
    Сообщений:582

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

    Репутация:106

    координаты появления заданы? x и y персонажа, в конструкторе при создании мы их задавали.

    и рисование draw карты и игрока как в уроке сделай (я про последовательность)

    #1865

    Aspirin193
    Участник
    Сообщений:7

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

    Репутация:0

    Я ПРОСТО взял и скопировал код с урока, у меня всё так же как и в уроке…(кроме иницилизации dir и speed)

    не пашет…

    #1866

    Aspirin193
    Участник
    Сообщений:7

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

    Репутация:0

    sprite.setTextureRect(IntRect(0, 0, w, h));

     

    обьясните, что значит эта строка?

    #1867
    Heisenberg
    Heisenberg
    Участник
    Сообщений:320

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

    Репутация:146

    спрайт.одетьТекстуруПрямоугольник(ЦелочисленныйВектор4(ЛеваяКоордината, ВерхняяКоордината, Ширина, Высота)); // Идёт счёт по пикселям на текстуре

    #1868
    Павел Букреев
    Павел Букреев
    Хранитель
    Сообщений:582

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

    Репутация:106

    скинь свой проект , попробуем запустить.

    по поводу вопроса: задаешь спрайту прямоугольник в скобках приведение типов в целочисленное. 0, и 0 это левый верхний угол картинки, w и h вправо и вниз от этого левого верхнего угла.

    #1903
    Павел Букреев
    Павел Букреев
    Хранитель
    Сообщений:582

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

    Репутация:106

    посмотри последние сообщения здесь:

    https://kychka-pc.ru/Forum/topic/ne-vyvoditsya-personazh

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

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