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.
SFML 2.X Przypisanie przezroczystego prostokąta teksturze
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Poznań
- Postów: 541
0
Dobra już mam. Oto kod:
// 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));
}
}
- 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.