Coding

Back to main page



SFML Coding

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut bibendum ligula odio, at viverra tortor lacinia pharetra. Sed sollicitudin tortor non mi luctus iaculis. Duis sit amet laoreet mauris. Phasellus suscipit interdum eros, sed euismod elit consectetur eget. Nam leo magna, pulvinar lacinia viverra eleifend, luctus et magna. Etiam a purus eu ex pretium convallis. Etiam accumsan dui quam. Morbi pellentesque nibh ac magna maximus, luctus imperdiet purus eleifend. In at efficitur nisl.

Duis vitae augue tempor, ornare arcu et, lacinia purus. Donec mattis semper tincidunt. In eget turpis vel ante suscipit tristique sit amet at lectus. In hac habitasse platea dictumst. Sed id elit vel justo maximus vulputate. Sed id eros semper, rutrum erat a, tincidunt eros. Nunc suscipit ultricies lectus, quis sodales sem lacinia ac. Integer luctus felis a vestibulum maximus. Duis tempus nec ex vel sagittis. Nunc vitae aliquet sem. Donec a nisl vestibulum, egestas massa a, ornare turpis.test paragraph

#include <SFML/Graphics.hpp>
#include <SFML/Window/Keyboard.hpp>
#include <SFML/Audio.hpp>
#include 
#include 
#include 
#include 
#include 
#include 

float windowX = 512.f;
float windowY = 512.f;

int main() {

sf::RenderWindow window(sf::VideoMode({windowX, windowY}), "Multi-screen", sf::Style::Default);
//sf::RenderWindow window(sf::VideoMode({windowX, windowY}), "Fullscreen Game", sf::State::Fullscreen);

sf::Image img;
    if (!img.loadFromFile("res/grad.tga")) {
        std::cerr << "Failed to load image\n";
    }
sf::Texture grad;
grad.loadFromImage(img);

sf::Sprite sprite(grad);
sprite.setScale({8.0f, 8.0f});

        //
        //sf::Vector2u size = image.getSize();
        std::ofstream file("res/output.txt");
        if (!file) {
            std::cerr << "failed to set output txt";
            return 1;
        }




        for (unsigned y = 0; y < img.getSize().y; y++) {
                for (unsigned x = 0; x < img.getSize().x; x++) {

                sf::Color c = img.getPixel({x, y});

                uint8_t r = c.r;
                uint8_t g = c.g;
                uint8_t b = c.b;
                uint8_t a = c.a; // optional

                file << "Pixel (" << x << ", " << y << "): "
                          << "R=" << static_cast(c.r) << " "
                          << "G=" << static_cast(c.g) << " "
                          << "B=" << static_cast(c.b) << "\n";
                }
        }

        //vector
        const int vecW = img.getSize().y;
        const int vecH = img.getSize().x;
        std::vector grid(vecW * vecH);
        auto index = [&](int x, int y) {
        return y * vecW + x;
        };
        // Writing
        for (int y2 = 0; y2 < vecH; y2++) {
            for (int x2 = 0; x2 < vecW; x2++) {

                sf::Color c = img.getPixel({x2, y2});
                uint8_t r = c.r;
                uint8_t g = c.g;
                uint8_t b = c.b;
                uint8_t a = c.a; // optional
                grid[index(x2, y2)] = static_cast(c.b); // example value

            }
        }
        // Reading
        for (int x = 0; x < vecH; x++) {
            for (int y = 0; y < vecW; y++) {
                std::cout << "grid[" << x << "," << y << "] = "
                          << grid[index(x, y)] << "\n\n";
            }
        }
std::cout << grid[index(1,18)] << std::endl; // read a coord



while (window.isOpen()) {

        window.setFramerateLimit(25);
        window.setVerticalSyncEnabled(true);
        // Updated event handling in SFML 3
        while (const std::optional event = window.pollEvent()) {
            if (event->is()) {
                window.close();
            }
            if (sf::Keyboard::isKeyPressed(sf::Keyboard::Key::X) || sf::Keyboard::isKeyPressed(sf::Keyboard::Key::Escape)) {
            window.close();
            }
        }

        sf::Vector2i pos = sf::Mouse::getPosition(window);
        int mouseX = pos.x;
        int mouseY = pos.y;
        std::cout << pos.x << "\t" << pos.y << "\t" << grid[index(pos.x/8,pos.y/8)] << std::endl;



        window.clear(sf::Color(15,15,32));
        window.draw(sprite);
        window.display();

    }

return 0;
}


Duis vitae augue tempor, ornare arcu et, lacinia purus. Donec mattis semper tincidunt. In eget turpis vel ante suscipit tristique sit amet at lectus. In hac habitasse platea dictumst. Sed id elit vel justo maximus vulputate. Sed id eros semper, rutrum erat a, tincidunt eros. Nunc suscipit ultricies lectus, quis sodales sem lacinia ac. Integer luctus felis a vestibulum maximus. Duis tempus nec ex vel sagittis. Nunc vitae aliquet sem. Donec a nisl vestibulum, egestas massa a, ornare turpis.test paragraph


© 2026