[SFML] Problem z Audio.hpp
Ostatnio zmodyfikowano 2014-01-13 07:54
dawid Temat założony przez niniejszego użytkownika |
[SFML] Problem z Audio.hpp » 2014-01-12 14:49:55 Cześć, aktualnie mam taki kod gry: #include <SFML/Audio.hpp> #include <SFML/Graphics.hpp>
#include <iostream> int main() { sf::RenderWindow okno( sf::VideoMode( 1024, 768 ), "Ruch obiektow", sf::Style::Fullscreen ); okno.setMouseCursorVisible( false ); sf::View fixed = okno.getView(); sf::Font font; font.loadFromFile( "tungab.ttf" ); sf::Text Text; Text.setFont( font ); Text.setString( "Przycisk ESC wylacza gre" ); sf::Texture tekstura; tekstura.loadFromFile( "image/chmury.png" ); sf::Sprite obrazek; obrazek.setTexture( tekstura ); sf::Texture tekstura2; tekstura2.loadFromFile( "image/balony/zielony.png" ); sf::Sprite zielony_balon; zielony_balon.setTexture( tekstura2 ); zielony_balon.setPosition( 10, 10 ); sf::Texture tekstura3; tekstura3.loadFromFile( "image/balony/czerwony.png" ); sf::Sprite czerwony_balon; czerwony_balon.setTexture( tekstura3 ); czerwony_balon.setPosition( 100, 100 ); sf::Texture tekstura4; tekstura4.loadFromFile( "image/balony/zolty.png" ); sf::Sprite zolty_balon; zolty_balon.setTexture( tekstura4 ); zolty_balon.setPosition( 500, 100 ); sf::Texture tekstura5; tekstura5.loadFromFile( "image/balony/rozowy.png" ); sf::Sprite rozowy_balon; rozowy_balon.setTexture( tekstura5 ); rozowy_balon.setPosition( 400, 100 ); sf::Texture kursor; kursor.loadFromFile( "image/celownik.png" ); sf::Sprite sprite( kursor ); Text.setPosition( 500, 720 ); sf::Music bomba_music; if( !bomba_music.openFromFile( "sound/bomba.wav" ) ) return EXIT_FAILURE; while( okno.isOpen() ) { sf::Event event; while( okno.pollEvent( event ) ) { if( event.type == sf::Event::Closed ) okno.close(); if( sf::Keyboard::isKeyPressed( sf::Keyboard::Escape ) ) { okno.close(); } float position_x = 15; float position_y = 15; float position_xleft = - 5; float position_yleft = 0; float position_xup = 0; float position_yup = - 5; float position_x_jump = 10; if( sf::Mouse::isButtonPressed( sf::Mouse::Left ) ) { bomba_music.play(); std::cout << "Klik" << std::endl; } } sprite.setPosition( static_cast < sf::Vector2f >( sf::Mouse::getPosition( okno ) ) ); okno.clear(); okno.draw( Text ); okno.draw( obrazek ); okno.draw( zielony_balon ); okno.draw( czerwony_balon ); okno.draw( zolty_balon ); okno.draw( rozowy_balon ); okno.draw( sprite ); okno.setView( fixed ); okno.display(); } return EXIT_SUCCESS; }
i dlaczego przy próbie kompilacji programu pojawia się tylko konsola natomiast okno nie. Efekt wygląda tak: http://iv.pl/images/15923399532468616742.png W logach jest coś takiego:
-------------- Build: Release in ProjektSFML (compiler: GNU GCC Compiler)---------------
Target is up to date. Nothing to be done (all items are up-to-date).
-------------- Run: Release in ProjektSFML (compiler: GNU GCC Compiler)---------------
Checking for existence: C:\Users\Dawid\Desktop\Projekt\ProjektSFML\bin\Release\ProjektSFML.exe Executing: "C:\Program Files (x86)\CodeBlocks/cb_console_runner.exe" "C:\Users\Dawid\Desktop\Projekt\ProjektSFML\bin\Release\ProjektSFML.exe" (in C:\Users\Dawid\Desktop\Projekt\ProjektSFML\.) Process terminated with status -1073741510 (0 minute(s), 1 second(s))
Dodam, że samo Graphics.hpp działa bez problemów. Co jest nie tak? |
|
RazzorFlame |
» 2014-01-12 15:37:49 sf::Music bomba_music; if( !bomba_music.openFromFile( "sound/bomba.wav" ) ) return EXIT_FAILURE;
|
Ta, przy takim układzie program kończy się właśnie w tym miejscu dlatego że uruchamiasz program przez cb_console_runner a nie z explorera (w cb_console_runner ścieżka jest wyczytywana od folderu z projektem nie z programem!). Dlatego uruchamiaj program z poziomu explorera albo wrzuć wszystkie potrzebne pliki do folderu z projektem (nie z programem). BTW, żebyś nie musiał zakładać kolejnego tematu od razu mówię Ci żebyś nie tworzył w żadnej pętli tych zmiennych z pozycjami bo co obieg pętli będą one resetowane! |
|
dawid Temat założony przez niniejszego użytkownika |
» 2014-01-12 16:40:39 Ale kiedy dzieje się tak nawet z poziomu edytora w czasie kompilacji (F9. A jeśli chodzi o kod, to dobry jest taki czy też nie, bo nie bardzo zrozumiałem o co Ci chodzi. |
|
RazzorFlame |
» 2014-01-13 07:54:39 Człowieku, cb_console_runner to wbudowany program Code::Blocks-a który uruchamia (raczej ładuje do pamięci ale to inna bajka) program. Jeśli w Code::Blocks uruchamiasz program przez np. Run albo Compile & Run to nie dziw się że ścieżka jest podawana od ścieżki z projektem. |
|
« 1 » |