R0ut4 Temat założony przez niniejszego użytkownika |
[SFML/C++] Obrócona mapa i "Failed to retrieve pixel..." » 2021-04-21 16:44:11 Yo, otóż tym razem zwracam się do was z pytaniami: 1. Dlaczego przy takim ustawieniu mapy: { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 1, 1, 1, 1, 1, 1, 0, 0 }, { 0, 0, 1, 1, 1, 1, 1, 1, 0, 0 }, { 0, 0, 1, 1, 1, 1, 1, 2, 2, 2 }, { 0, 0, 1, 1, 1, 1, 1, 2, 2, 2 }, { 0, 0, 3, 1, 3, 1, 3, 3, 0, 0 }, { 0, 0, 3, 3, 3, 1, 3, 3, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
0-woda 1-trawa 2-most 3-drzewo(projekt) drzewa, które powinny być na dole są na górzę? 2. Przed dodaniem drzew miałem problem z mostem. Zamiast być po prawej był na dole to spróbowałem obrócić kamerę kamera.setRoptation(90.f); (chyba tak), i to załatwilo sprawę z mostem, ale teraz jest taki problem z drzewami. Dlaczego? 3. O co chodzi z problemem "Failed to retrieve pixel format information: Opracja ukończona pomyślnie." szukałem w internecie i nic nie wynalazłem. kod main.cpp #include <SFML/Window.hpp> #include <SFML/Graphics.hpp>
enum Stan { Menu, Game, Eq };
int main() { sf::RenderWindow window( sf::VideoMode( 1280, 720 ), "Game" ); window.setFramerateLimit( 60 ); sf::Texture player; sf::Texture water; sf::Texture grass; sf::Texture most; sf::Texture iglaste; player.loadFromFile( "player.png" ); water.loadFromFile( "water.png" ); grass.loadFromFile( "grass.png" ); most.loadFromFile( "most.png" ); iglaste.loadFromFile( "iglaste.png" ); sf::Sprite spPlayer( player ); sf::Sprite spWater( water ); sf::Sprite spGrass( grass ); sf::Sprite spMost( most ); sf::Sprite spIglaste( iglaste ); spPlayer.setOrigin( 25.f, 25.f ); spPlayer.setPosition( 640, 360 ); sf::View kamera; kamera.setCenter( spPlayer.getPosition() ); kamera.setSize( 1280.f, 720.f ); kamera.setRotation( 90.f ); Stan stan; sf::Event e; while( window.isOpen() ) { while( window.pollEvent( e ) ) { if( e.type == sf::Event::Closed ) { window.close(); } } switch( stan ) { case Menu: { if( sf::Keyboard::isKeyPressed( sf::Keyboard::Enter ) ) { stan = Game; } } break; case Game: { if( sf::Keyboard::isKeyPressed( sf::Keyboard::W ) ) { spPlayer.move( 2, 0 ); kamera.move( 2, 0 ); } if( sf::Keyboard::isKeyPressed( sf::Keyboard::S ) ) { spPlayer.move( - 2, 0 ); kamera.move( - 2, 0 ); } if( sf::Keyboard::isKeyPressed( sf::Keyboard::A ) ) { spPlayer.move( 0, - 2 ); kamera.move( 0, - 2 ); } if( sf::Keyboard::isKeyPressed( sf::Keyboard::D ) ) { spPlayer.move( 0, 2 ); kamera.move( 0, 2 ); } } break; case Eq: break; } window.clear(); switch( stan ) { case Menu: break; case Game: { const float tilesize = 100; int maptile[ 10 ][ 10 ] = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 1, 1, 1, 1, 1, 1, 0, 0 }, { 0, 0, 1, 1, 1, 1, 1, 1, 0, 0 }, { 0, 0, 1, 1, 1, 1, 1, 2, 2, 2 }, { 0, 0, 1, 1, 1, 1, 1, 2, 2, 2 }, { 0, 0, 3, 1, 3, 1, 3, 3, 0, 0 }, { 0, 0, 3, 3, 3, 1, 3, 3, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }; for( int row = 0; row < 10; row++ ) { for( int col = 0; col < 10; col++ ) { if( maptile[ row ][ col ] == 0 ) { spWater.setPosition( row * tilesize, col * tilesize ); window.draw( spWater ); } if( maptile[ row ][ col ] == 1 ) { spGrass.setPosition( row * tilesize, col * tilesize ); window.draw( spGrass ); } if( maptile[ row ][ col ] == 2 ) { spMost.setPosition( row * tilesize, col * tilesize ); window.draw( spMost ); } if( maptile[ row ][ col ] == 3 ) { spIglaste.setPosition( row * tilesize, col * tilesize ); window.draw( spIglaste ); } } } window.draw( spPlayer ); window.setView( kamera ); } break; case Eq: break; } window.display(); } }
|