Configurar Code::Blocks y SFML en Linux Debian

En esta parte del curso ya debemos tener  instalado el Code::Blocks, las librerías SFML y haber  probado con el compilador g++ un programa sencillo. El siguiente paso es configurar un proyecto de Code::Blocks para que empecemos a compilar y ejecutar programas con las librerías SFML.

Lo primero que vamos hacer es crear un nuevo proyecto en Code::Blocks y agregarle un archivo fuente. En este link está paso a paso como hacerlo. En  Code::Blocks le damos click a crear nuevo proyecto, proyecto vacío, siguiente, le damos nombre al proyecto ejemplo: ProySFML, siguiente y finalizar.


Creado el proyecto su nombre aparecerá en el Workspace. A continuación agregamos el archivo fuente donde vamos a escribir el programa SFML que mostrara una ventana sencilla y vacía donde después dibujaremos algunas figuras.La ventana va ser nuestro lienzo donde vamos a plasmar nuestras ideas.

Para agregar el archivo: File>New>Empty file


Desea agregar este nuevo archivo al proyecto activo? le damos sí


escribimos un nombre al archivo con extensión cpp ejemplo: ventana.cpp guardamos y aceptamos la múltiple selección de Debug y Release.




Vamos a crear una ventana básica de dibujo con la clase especializada Window sf::RenderWindow
y vamos a crear el bucle típico con la estrategia obligatoria de limpiar-dibujar-mostrar (clear-Draw-Display). De esta forma no vamos a tener problemas. A continuación el programa completo que debemos copiar y que mas adelante explicaremos en detalle, por lo momentos nos interesa que se pueda compilar-enlazar y ejecutar con Code::Blocks.

La mayoría de los programas SFML tienen la estructura del programa siguiente:
  #include <SFML/Graphics.hpp>

int main()
{
    // cramos la ventana de 800x600 pixeles
    sf::RenderWindow window(sf::VideoMode(800, 600), "Ventana Render");

    // ejecutar el programa mientras la ventana esté abierta
    while (window.isOpen())
    {
        //verificamos todos los eventos de la ventana 

        sf::Event event;
        while (window.pollEvent(event))
        {
            // "cierre solicitado" evento: cerramos la ventan
            if (event.type == sf::Event::Closed)
                window.close();
        }

        // limpiamos la ventana con el color negro
        window.clear(sf::Color::Black);

        // aqui dibujamos todo lo que queramos
        // window.draw(...);

        // finalizamos el ciclo actual 
        window.display();
    }

    return 0;
}


A continuación compilamos y enlazamos con Build (Ctrl+F9) y veremos varios mensajes de error de referencia indefinida, aquí nos detenemos para configurar el proyecto para que funcione correctamente con SFML.



Para solucionarlo debemos vincular las librerías y directorios de SFML con el proyecto actual en Code::Blocks. Para ello le damos clic a Project ->> Build options... y vamos a realizar el siguiente proceso tanto para Debug y Release:
Debug y Release:
  Linker Setting:
             Add library :
                                sfml-graphics
                                sfml-window
                                sfml-system
                                      .....la librería que haga falta sonido etc.

Search directories:
           Add directory-Compiler:
                                                /usr/local/include
           Add directory-Linker:
                                                /usr/local/lib
Compiler settings:
                         #defines:
                                      SFML_STATIC
                             
Al terminar con Debug le damos aceptar y hacemos exactamente lo mismo con Release.

A continuación compilamos y enlazamos con Build (Ctrl+F9) y si todo esta  bien (0 error) le damos Run  (Ctrl+F10) y veremos nuestra ventana de 800x600 píxeles.




A continuación el detalle de como configurar el proyecto Code::Blocks para que trabaje con SFML

Buscamos las opciones de construcción del proyecto:












Le damos aceptar y repetimos los paso seleccionando Release...




Comentarios

Entradas populares de este blog

Mover formas simples en pantalla con C++ y SFML

Dibujar formas simples con C++ y SFML

Como Mover Formas Simples Con el Teclado con C++ y SFML