[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 » |