17 respuestas

  1. Angel Rubén
    19/03/2012

    Hola!
    Primero, gracias por esta página y por intentar (al menos) difundir los conocimientos.
    Luego, tengo un problema con el codigo, mas exactamente en «&&» que me genera 4 estupendos errores en el Codelite.

    Un saludo.

    • adrigm
      19/03/2012

      Ponme el código y los errores a ver que pasa.

  2. Angel Rubén
    19/03/2012

    Codigo:

    #include

    int main()
    {
    //Cuerpo
    sf::Window App(sf::VideoMode(640, 480, 32), «SFML Window»);
    // Esto crea una ventana a pantalla completa
    //App.Create(sf::VideoMode(800, 600, 32), «SFML Window», sf::Style::Fullscreen);

    // Bucle principal del juego
    bool Running = true;
    while (Running)
    {
    while (App.IsOpened())
    {
    sf::Event Event;
    while (App.GetEvent(Event))
    {
    // Window closed
    if (Event.Type == sf::Event::Closed)
    App.Close();

    // Escape key pressed
    if ((Event.Type == sf::Event::KeyPressed) && (Event.Key.Code == sf::Key::Escape))
    App.Close();
    }
    }
    // Mostramos la ventana
    App.Display();
    }

    return EXIT_SUCCESS;

    }

    Resultado:
    ———-Build Started——–
    /bin/sh -c ‘»make» -j 2 -f «Tutorial_SFML_wsp.mk»‘
    ———-Building project:[ SegundaVentana – Debug ]———-
    make[1]: se ingresa al directorio «/home/ubuntufamiliapc/.codelite/Tutorial_SFML/SegundaVentana»
    make[1]: se sale del directorio «/home/ubuntufamiliapc/.codelite/Tutorial_SFML/SegundaVentana»
    make[1]: se ingresa al directorio «/home/ubuntufamiliapc/.codelite/Tutorial_SFML/SegundaVentana»
    g++ -c «/home/ubuntufamiliapc/.codelite/Tutorial_SFML/SegundaVentana/main.cpp» -g -O0 -Wall -o ./Debug/main.o -I. -I.
    /home/ubuntufamiliapc/.codelite/Tutorial_SFML/SegundaVentana/main.cpp: In function ‘int main()’:
    /home/ubuntufamiliapc/.codelite/Tutorial_SFML/SegundaVentana/main.cpp:24: error: ‘amp’ was not declared in this scope
    /home/ubuntufamiliapc/.codelite/Tutorial_SFML/SegundaVentana/main.cpp:24: error: expected ‘)’ before ‘;’ token
    /home/ubuntufamiliapc/.codelite/Tutorial_SFML/SegundaVentana/main.cpp:24: error: ‘amp’ was not declared in this scope
    /home/ubuntufamiliapc/.codelite/Tutorial_SFML/SegundaVentana/main.cpp:24: error: expected ‘;’ before ‘)’ token
    make[1]: *** [Debug/main.o] Error 1
    make[1]: se sale del directorio «/home/ubuntufamiliapc/.codelite/Tutorial_SFML/SegundaVentana»
    make: *** [All] Error 2
    ———-Build Ended———-

  3. Angel Rubén
    19/03/2012

    Bueno, parece que el editor de los comentarios pone el código de distinta manera..pero de todas formas en esta línea:

    if ((Event.Type == sf::Event::KeyPressed) && (Event.Key.Code == sf::Key::Escape))

    el &&, si lo dejo asi me da aun más errores..

    ./Debug/main.o: In function `main':
    /home/ubuntufamiliapc/.codelite/Tutorial_SFML/SegundaVentana/main.cpp:6: undefined reference to `sf::VideoMode::VideoMode(unsigned int, unsigned int, unsigned int)’
    /home/ubuntufamiliapc/.codelite/Tutorial_SFML/SegundaVentana/main.cpp:6: undefined reference to `sf::Window::Window(sf::VideoMode, std::basic_string<char, std::char_traits, std::allocator > const&, unsigned long, sf::WindowSettings const&)’
    /home/ubuntufamiliapc/.codelite/Tutorial_SFML/SegundaVentana/main.cpp:6: undefined reference to `sf::Window::~Window()’
    /home/ubuntufamiliapc/.codelite/Tutorial_SFML/SegundaVentana/main.cpp:21: undefined reference to `sf::Window::Close()’
    /home/ubuntufamiliapc/.codelite/Tutorial_SFML/SegundaVentana/main.cpp:25: undefined reference to `sf::Window::Close()’
    /home/ubuntufamiliapc/.codelite/Tutorial_SFML/SegundaVentana/main.cpp:17: undefined reference to `sf::Window::GetEvent(sf::Event&)’
    /home/ubuntufamiliapc/.codelite/Tutorial_SFML/SegundaVentana/main.cpp:14: undefined reference to `sf::Window::IsOpened() const’
    /home/ubuntufamiliapc/.codelite/Tutorial_SFML/SegundaVentana/main.cpp:29: undefined reference to `sf::Window::Display()’
    /home/ubuntufamiliapc/.codelite/Tutorial_SFML/SegundaVentana/main.cpp:32: undefined reference to `sf::Window::~Window()’
    /home/ubuntufamiliapc/.codelite/Tutorial_SFML/SegundaVentana/main.cpp:32: undefined reference to `sf::Window::~Window()’
    collect2: ld returned 1 exit status
    make[1]: *** [Debug/SegundaVentana] Error 1
    make[1]: se sale del directorio «/home/ubuntufamiliapc/.codelite/Tutorial_SFML/SegundaVentana»
    make: *** [All] Error 2
    ———-Build Ended———-
    10 errors, 0 warnings

  4. adrigm
    19/03/2012

    Ya esa es la línea, pero sin ver lo demás no te puedo decir intenta poner el enlace del código en un pastebin o cualquier otra página para poner código y ponme el enlace aquí.

  5. Angel Rubén
    19/03/2012

    Envío los dos códigos y los resultados de los mismos:

    http://dl.dropbox.com/u/28147341/CodigoYResultados.zip

    • adrigm
      19/03/2012

      A mí me compila perfectamente, ¿Tienes bien enlazada la biblioteca? Prueba a compilar desde consola con:

      g++ Ventana1.cpp -sfml-window -o NombreEjecutable

      a ver si te compila, si es así es que tienes mal configurado el codelite.

      • Angel Rubén
        19/03/2012

        Mismos resultados al compilar por consola.
        Voy a intentar otra cosa. Luego comento.

      • Angel Rubén
        19/03/2012

        Nada. Todo igual! Mismos resultados!

      • adrigm
        19/03/2012

        A mi tu código me compila, ¿Estás seguro que tienes bien instalada la biblioteca sfml? ¿La versión 1.6? Si es así, no entiendo que puede pasar a mi me compila perfectamente.

  6. Angel Rubén
    19/03/2012

    Bien… De esto es lo que vale los ejemplos y los ejercicios prácticos..para aprender. Ya se cual ha sido mi error..
    Como no es mi entorno de desarrollo que suelo usar y ni siquiera el lenguaje, pues ando bastante perdido..
    Exacto, no estaba enlazado nada de nada, es decir, en la configuracion, en linker, Options lo tenia vacío..
    Ya compila bien y se ejecuta.

    Lo último, en ambos ejemplos de ventana, en mi caso, se dibuja mal, es decir, no la ventana si no mas bien el interior de la ventana que sale como un vídeo cuando se ha «jodio» y salen muchas líneas «malamente»..no se si se comprende..

    Bueno, un saludo y gracias.

    • adrigm
      19/03/2012

      Es por que no tienes un control de tiempo y se ejecuta a máxima velocidad. Prueba a añadir antes del bucle del juego lo siguiente.

      App.UseVerticalSync(true);

      Esto hace que los FPS se fijen en 60 independientemente de la máquina. Si se sigue viendo mal es que el problema es de OpenGL. Recuerda que SFML corre sobre OpenGL y si no hay aceleración gráfica en la máquina no irá.

      • Angel Rubén
        20/03/2012

        Buenas. He puesto esa línea pero sigue saliendo todo igual. He mirado que tenga aceleración gráfica con el comando glxinfo y me aparece que si.
        ¿Cual podría ser el problema?

      • Angel Rubén
        20/03/2012

        Además, he probado el juego de ejemplo (Pong) y se ve igual de mal. Envío enlace de lo que se ve (pantallazos):

        http://dl.dropbox.com/u/28147341/Pantallazo.zip

      • adrigm
        20/03/2012

        obviamente tienes problemas o con OpenGL o con los drivers gráficos. Prueba a probar otros juegos que usen OpenGL (todos los 3D de linux) a ver si van. Si es así prueba algún juego hecho en SFML que encuentres por la red a ver.

      • Angel Rubén
        22/03/2012

        Buenas. He probado OpenArena, SuperTuxKar, OpenTTD,…. y todos funcionan bien…Eso sí, muchos juegos SFML no he encontrado (o he sabido si eran..)..

  7. Esteban
    10/01/2014

    Hola que tal, a mi me dá excepción en tiempo de ejecución al crear la ventana…
    Este es mi codigo:

    [[

    #include
    #include

    int main()
    {
    sf::Window window;
    window.create(sf::VideoMode(800, 600), «Ventana de prueba…»);
    return 0;
    }

    ]]

    Estoy con el netbeans en C++.
    Desde ya muchas gracias.

Responder

 

 

 

Volver arriba
móvil escritorio