[SFML 2.X] Pochylenie tekstury w SFML
Ostatnio zmodyfikowano 2025-02-22 19:04
tBane Temat założony przez niniejszego użytkownika |
[SFML 2.X] Pochylenie tekstury w SFML » 2025-02-22 14:52:04 Witam. Piszę na nowo metodę generowania sprajtu budynku. Poradziłem sobie z renderowaniem ścian przy pomocy sf::Image. Chciałbym teraz wygenerować dach i aby to zrobić potrzebuję rozciągnąć w taki sposób tekturę by była "pochylona". Jak to zrobić w SFML ? tekstura wejściowatekstura wyjsciowa (taką chcę osiągnąć)sf::Image main_image; main_image.create( size.x * 16 + 32,( walls_height + size.x / 4 + size.y ) * 16, sf::Color::Red );
sf::Texture tile_texture = * getSingleTexture( "buildings/parts/roof2" )->texture; sf::Image tile_image = tile_texture.copyToImage(); sf::Image part_roof_image; part_roof_image.create( size.x * 16 / 2, size.y * 16, sf::Color::Blue );
for( short y = 0; y < size.y * 16 - size.x / 4 * 16; y += 16 ) { for( short x = 0; x < size.x / 2 * 16; x += 16 ) { float dest_x = x; float dest_y = y; part_roof_image.copy( tile_image, dest_x, dest_y ); } }
sf::Texture tex; tex->loadFromImage( part_roof_image ); sf::ConvexShape cshape; cshape.setPointCount( 4 ); cshape.setPoint( 0, sf::Vector2f( 0, 0 ) ); cshape.setPoint( 1, sf::Vector2f( 100, 100 ) ); cshape.setPoint( 2, sf::Vector2f( 100, 200 ) ); cshape.setPoint( 3, sf::Vector2f( 0, 100 ) ); cshape.setTexture( tex );
main_image.copy( part_roof_image, 16 - 16 / 2, 16 - 16 / 2 + size.x / 4 * 16 );
|
|
tBane Temat założony przez niniejszego użytkownika |
» 2025-02-22 19:04:21 Rozwiązaniem jest zastosowanie sf::VertexArray. Ja to zrobiłem w ten sposób, że zdefiniowałem wierzchołki oraz współrzędne tekstury.
|
|
« 1 » |