Загрузка изображения по номеру pic.loadFromFile("img/N.png");

SFML и C++ Уроки \ Разработка игр Форумы SFML Graphics Загрузка изображения по номеру pic.loadFromFile("img/N.png");

В этой теме 11 ответов, 2 участника, последнее обновление Heisenberg Heisenberg 10 мес. назад.

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

    1a2b3c4d2
    Участник
    Сообщений:11

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

    Репутация:2

    Есть набор изображений. Нужно загрузить изображение с указанным номером. Что-то вроде(после N может стоять ещё набор символов не определяющих номер img/Nhero.png/ или img/Nmonster):

    Разумеется в таком виде код не работает. Как его правильно написать? Заранее спасибо.
    (C++ Visual & SFML)

    P.S. Не по теме, но всё же: как работают файлы вида DATA(хранилища файлов(звуки, спрайты, текстуры и т.д.)) Буду рад советам и ссылкам на ресурсы с информацией.

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

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

    Репутация:139
    #3046

    1a2b3c4d2
    Участник
    Сообщений:11

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

    Репутация:2

    Спасибо. Пару моментов:

    Идентификатор loadFromFile не определен, fly тоже самое, n сразу исправил.

    Изменил:

    fly остался прежним, “img/” ошибка слишком много аргументов в вызове функции.

    Чтобы такого сделать с fly не получается допереть.

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

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

    Репутация:139

    Да это моя не внимательность, скопировал код из своего проекта…
    Вот так должно быть.

    тчк

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

    1a2b3c4d2
    Участник
    Сообщений:11

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

    Репутация:2

    Осталась последняя загадка на миллион:
    Как используя массив и клавиатуру заставить менять текущий элемент массива на другой(выведено на экран 2.png после нажатия if (Keyboard::isKeyPressed(Keyboard::Return) выводится 3.png)?

    Даже если убрать массив(при малом числе файлов от него проку мало, но всё равно полезен)

    То всё равно компилятор жалуется на то что i(ниже) не инициализированная локальная переменная.

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

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

    Репутация:139

    #include<sstream> подключена?

    #3067

    1a2b3c4d2
    Участник
    Сообщений:11

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

    Репутация:2

    Да но он всё равно жалуется на pic[i] – отсутствует оператор “[]” соответствующий этим операндам Типы операндов sf::Image [int].

    P.S. С каждой решенной проблемой чувствую себя всё большим идиотом неспособным найти ответ в решении схожих проблем(форумы читаю, но конкретно о SFML таких проблем не нахожу).
    Я всё равно не вижу особого смысла в массиве. Что с ним что без него реакции на клавиатуру нету.

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

    Я явного где-то сильно напортачил.

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

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

    Репутация:139

    Image pic[4]; сделай массивом

    #3069

    1a2b3c4d2
    Участник
    Сообщений:11

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

    Репутация:2

    Выражение pic должно иметь тип класса.

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

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

    Репутация:139
    #3096

    1a2b3c4d2
    Участник
    Сообщений:11

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

    Репутация:2

    Нет. Просто нет.

    Во-первых ради разнообразия запустите. Это крайне интересное зрелище.(просто скачайте пару файлов РАЗНОГО размера)

    Во-вторых а без массива ВООБЩЕ никак? Это довольно неудобный инструмент. Да он помогает если необходимо загрузить ОДНОВРЕМЕННО группу данных, но не здесь.

    В любом случае спасибо. Теперь либо буду ломать голову над тем как сделать код человечным, или перейду на другую графическую среду, или заброшу это дело.

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

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

    Репутация:139

    Ваш случай и есть тот самый, в котором нужно загрузить коллекцию текстур и одевать её по [id] по надобности, а не загружать новую текстуру каждый раз в игровом процессе.
    Их нужно подгрузить заранее, иначе это плохо отразится на производительности вашего приложения, а именно будет некая задержка на загрузку текстуры прям во время игры!
    Чем вас мой класс из 4 поста не понравился?
    Работает на ура, универсален в использовании…
    Ну да ладно – дело ваше. Сдавайтесь – если слабачок.

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

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