SFML и C++ Уроки \ Разработка игр › Форумы › SFML Graphics › Загрузка изображения по номеру pic.loadFromFile("img/N.png"); › Ответ в теме: Загрузка изображения по номеру pic.loadFromFile("img/N.png");
Да но он всё равно жалуется на pic[i] – отсутствует оператор “[]” соответствующий этим операндам Типы операндов sf::Image [int].
C++
1 2 3 4 5 |
Image pic; int i = 1; int n = 4; for (int i = 1; i < n; i++) pic[i].loadFromFile("img/" + std::to_string((int)i + 1) + ".png"); Vector2u size = pic.getSize(); |
P.S. С каждой решенной проблемой чувствую себя всё большим идиотом неспособным найти ответ в решении схожих проблем(форумы читаю, но конкретно о SFML таких проблем не нахожу).
Я всё равно не вижу особого смысла в массиве. Что с ним что без него реакции на клавиатуру нету.
C++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
#include <SFML/Graphics.hpp> #include<Windows.h> #include <iostream> #include<sstream> using namespace sf; int main() { RenderWindow window(VideoMode::getDesktopMode(), "SFML Test", Style::Fullscreen); Image pic; int i = 1; pic.loadFromFile("img/" + std::to_string((int)i) + ".png"); Vector2u size = pic.getSize(); Texture picfon; picfon.loadFromImage(pic); Sprite fon; fon.setTexture(picfon); while (window.isOpen()) { sf::Event event; while (window.pollEvent(event)) { if (event.type == sf::Event::Closed || (event.type == sf::Event::KeyPressed && event.key.code == sf::Keyboard::Escape)) window.close(); } if (Keyboard::isKeyPressed(Keyboard::Left)) { fon.setScale(static_cast<float>(window.getSize().x) / size.x, static_cast<float>(window.getSize().y) / size.y); } if (Keyboard::isKeyPressed(Keyboard::Right)) { fon.setScale(1, 1); } if (Keyboard::isKeyPressed(Keyboard::Up)) { float xsize = (static_cast<float>(window.getSize().x) / size.x); fon.setScale(xsize , xsize); } if (Keyboard::isKeyPressed(Keyboard::Down)) { float ysize = (static_cast<float>(window.getSize().y) / size.y); fon.setScale(ysize , ysize); } if (Keyboard::isKeyPressed(Keyboard::Return)) { int i = i + 1; pic.loadFromFile("img/" + std::to_string((int)i) + ".png"); } window.clear(Color::White); window.draw(fon); window.display(); } return 0; } |
Не говоря уже о том что жалобы на не инициализированную локальную переменную продолжаются.
Я явного где-то сильно напортачил.