Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SFML] Problem z Audio.hpp

Ostatnio zmodyfikowano 2014-01-13 07:54
Autor Wiadomość
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:

C/C++
#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 ); //ukrywanie standardowego kursora
   
    sf::View fixed = okno.getView();
   
    sf::Font font;
    font.loadFromFile( "tungab.ttf" ); //Ladowanie czcionki
    sf::Text Text;
    Text.setFont( font );
    Text.setString( "Przycisk ESC wylacza gre" ); //Tekst, który bedzie wyswietlony
   
   
    sf::Texture tekstura;
    tekstura.loadFromFile( "image/chmury.png" );
   
    sf::Sprite obrazek;
    obrazek.setTexture( tekstura );
   
    //Zielony balon
    sf::Texture tekstura2;
    tekstura2.loadFromFile( "image/balony/zielony.png" );
   
    sf::Sprite zielony_balon;
    zielony_balon.setTexture( tekstura2 );
    zielony_balon.setPosition( 10, 10 );
    //Czerwony balon
    sf::Texture tekstura3;
    tekstura3.loadFromFile( "image/balony/czerwony.png" );
   
    sf::Sprite czerwony_balon;
    czerwony_balon.setTexture( tekstura3 );
    czerwony_balon.setPosition( 100, 100 );
    //zolty balon
    sf::Texture tekstura4;
    tekstura4.loadFromFile( "image/balony/zolty.png" );
   
    sf::Sprite zolty_balon;
    zolty_balon.setTexture( tekstura4 );
    zolty_balon.setPosition( 500, 100 );
   
    //rozowy balon
    sf::Texture tekstura5;
    tekstura5.loadFromFile( "image/balony/rozowy.png" );
   
    sf::Sprite rozowy_balon;
    rozowy_balon.setTexture( tekstura5 );
    rozowy_balon.setPosition( 400, 100 );
   
    //Celownik
    sf::Texture kursor;
    kursor.loadFromFile( "image/celownik.png" );
    sf::Sprite sprite( kursor );
   
    //Text.setColor(sf::Color( 26, 69, 432)); //kolor tekstu
    Text.setPosition( 500, 720 ); //pozycja tekstu w pixelach
    //obrazek.setPosition( 100, 100);
   
    //dźwiek bomby
    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;
           
            //Klawiszologia
            /*if( sf::Keyboard::isKeyPressed( sf::Keyboard::Right ) )
                        {
                            Text.setString("Strzalka w prawo");
                            obrazek.move(position_x++, 0);
           
                        }
           
                        if( sf::Keyboard::isKeyPressed( sf::Keyboard::Left ) )
                        {
                           obrazek.move( -5, position_yleft++ );
                           Text.setString("Strzalka lewo");
                        }
                        if( sf::Keyboard::isKeyPressed( sf::Keyboard::Up ) )
                        {
                            obrazek.move(position_xup, position_yup);
                            Text.setString("Strzalka gora");
                        }
                        if( sf::Keyboard::isKeyPressed( sf::Keyboard::Down ) )
                        {
                            obrazek.move(0, position_y++);
                            Text.setString("Strzalka dol");
                        }
                        if( sf::Keyboard::isKeyPressed( sf::Keyboard::Space ) )
                        {
                           obrazek.move( position_x_jump, 0 );
                        }*/
            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 ); //wyświetlenie tekstu w oknie
        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?
P-101947
RazzorFlame
» 2014-01-12 15:37:49
C/C++
//dźwiek bomby
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!
P-101969
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.
P-101984
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.
P-102048
« 1 »
  Strona 1 z 1