SFML 2.X Przypisanie przezroczystego prostokąta teksturze

SFML 2.X Przypisanie przezroczystego prostokąta teksturze
tBane
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Poznań
  • Postów: 541
0

Witam. Piszę grę w C++ oraz SFML 2.5.2. Potrzebuję aby pewien przezroczysty prostokąt został wyrenderowany na teksturze w taki sposób by ta tekstura stała się przezroczysta w miejscu tego prostokąta.

tBane
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Poznań
  • Postów: 541
0

Dobra już mam. Oto kod:

Kopiuj
// RENDER EMPTY PLACE FOR THE DOOR
if (_door != nullptr) {
    sf::RectangleShape door(sf::Vector2f(_door->sprite.getTexture()->getSize()));

    for (short y = 0; y < door.getSize().y-1; y++)
        for (short x = 0; x < door.getSize().x; x++) {
            sf::Vector2i pos;
            pos.x = float(size.x)/2.0f*16.0f - door.getSize().x/2.0f + tile_width/2.0f + x;
            pos.y = rtex.getSize().y-1-y;
            house_image.setPixel(pos.x, pos.y, sf::Color(0,0,0,0));
        } 
}
flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12270
1

Coś takiego będzie potwornie powolne — modyfikowanie zawartości jakiejkolwiek grafiki, piksel po pikselu, za pomocą getterów i setterów to zawsze zły pomysł. Zobacz na ten wątek — https://en.sfml-dev.org/forums/index.php?topic=9210.0 — zdaje się, że można to uzyskać renderując kształt w kolorze czarnym i zerowym alpha.

tBane
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Poznań
  • Postów: 541
0

Na szczęście jest to generowane tylko raz podczas życia programu. Działa, nie będę poprawiał. Ale dzięki za radę :-)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.