Instale o CSFML, o SFML para Linguagem C

Crie jogos 2D de forma fácil e rápida!


Instale o CSFML, o SFML para Linguagem C


O CSFML é uma interface do SFML para a Linguagem C, pois o SFML só funciona nativamente em C++.

Está disponível para Windows, GNU/Linux e macOS.

O bom de ter o CSFML também instalado em seu sistema é que diversas outras linguagens de programação que possuem bindings para o SFML, usam o CSFML como wrapper em vez do próprio SFML.


Instalação

Exemplo no Ubuntu:

sudo apt install libcsfml-graphics2.5 libcsfml-audio2.5 libcsfml-dev libcsfml-doc libcsfml-network2.5 libcsfml-system2.5 libcsfml-window2.5

Se quiser instalar tudo de uma única vez:

sudo apt install libcsfml-*

Veja aqui para Arch Linux e aqui para Fedora. Para outras distros use a pesquisa do gerenciador de pacotes do seu sistema!

Para Windows você deve fazer o download nesse link, descompactar e mover para a unidade C:\, outra alternativa também é usar o NuGet:

dotnet add package CSFML --version 2.5.1

Há também o download para o macOS, no entanto, você também pode usar o Brew, para isso basta rodar o comando:

brew install csfml

Você também pode compilar do zero, mas lembre-se que antes precisa ter o SFML instalado como dependência. Para isso rode os comandos abaixo:

git clone https://github.com/SFML/CSFML
cd CSFML
cmake -B build .
cd build && make
sudo make install
cd ../..
rm -rf CSFML
Clique aqui para ver os locais onde os arquivos são instalados
Install the project...
-- Install configuration: "Release"
-- Installing: /usr/local/pkgconfig/csfml-all.pc
-- Installing: /usr/local/pkgconfig/csfml-system.pc
-- Installing: /usr/local/pkgconfig/csfml-window.pc
-- Installing: /usr/local/pkgconfig/csfml-graphics.pc
-- Installing: /usr/local/pkgconfig/csfml-audio.pc
-- Installing: /usr/local/pkgconfig/csfml-network.pc

-- Up-to-date: /usr/local/./include
-- Installing: /usr/local/./include/SFML
...

-- Installing: /usr/local/share/CSFML/license.md
-- Installing: /usr/local/share/CSFML/readme.md
-- Installing: /usr/local/lib/libcsfml-system.so.2.5.2
-- Installing: /usr/local/lib/libcsfml-system.so.2.5
-- Installing: /usr/local/lib/libcsfml-system.so
-- Installing: /usr/local/lib/libcsfml-window.so.2.5.2
-- Installing: /usr/local/lib/libcsfml-window.so.2.5
-- Installing: /usr/local/lib/libcsfml-window.so
-- Installing: /usr/local/lib/libcsfml-network.so.2.5.2
-- Installing: /usr/local/lib/libcsfml-network.so.2.5
-- Installing: /usr/local/lib/libcsfml-network.so
-- Installing: /usr/local/lib/libcsfml-graphics.so.2.5.2
-- Installing: /usr/local/lib/libcsfml-graphics.so.2.5
-- Installing: /usr/local/lib/libcsfml-graphics.so
-- Installing: /usr/local/lib/libcsfml-audio.so.2.5.2
-- Installing: /usr/local/lib/libcsfml-audio.so.2.5
-- Installing: /usr/local/lib/libcsfml-audio.so


Código básico de exemplo

Crie um arquivo exemplo: main.c:

#include <SFML/Graphics.h>

int main(int argc, char **argv) {
  sfVideoMode mode = {800, 450, 32};
  sfRenderWindow *window = sfRenderWindow_create(mode, "CSFML Example", sfResize | sfClose, NULL);

  sfRectangleShape *shape = sfRectangleShape_create();
  sfVector2f vf = {200, 200}, pos = {30, 30};
  sfRectangleShape_setSize(shape, vf);
  sfRectangleShape_setFillColor(shape, sfGreen);
  sfRectangleShape_setPosition(shape, pos);

  while (sfRenderWindow_isOpen(window)) {
    sfEvent event;
    while (sfRenderWindow_pollEvent(window, &event)) {
      if (event.type == sfEvtClosed) {
        sfRenderWindow_close(window);
      }
    }

    sfRenderWindow_clear(window, sfBlack);
    sfRenderWindow_drawRectangleShape(window, shape, NULL);
    sfRenderWindow_display(window);
  }

  sfRectangleShape_destroy(shape);
  sfRenderWindow_destroy(window);

  return 0;
}

Para compilar:

gcc main.c -lcsfml-window -lcsfml-system -lcsfml-graphics

OBSERVAÇÃO: Se você compilou do zero e encontrou erro ao rodar o binário que está procurando o arquivo: .so, então você precisará adicionar o caminho que foi instalado à sua variável $LD_LIBRARY_PATH:

export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/local/lib"

Você pode adicionar essa linha ao seu ~/.bashrc para automatizar essa adição e não precisar ficar rodando esse comando toda vez que for rodar binários CSFML!

Os nomes das funções e a forma de uso são bem intuitivos, pois se você já conhece o SFML fica fácil de deduzir. Se ainda não conhece, recomendo fazer nosso: Curso de Criação de Jogos com SFML: https://terminalroot.com.br/games.

Para mais informações acesse os links:


linguagemc sfml gamedev


Compartilhe


Nosso canal no Youtube

Inscreva-se


Marcos Oliveira

Marcos Oliveira

Desenvolvedor de software
https://github.com/terroo


Crie Aplicativos Gráficos para Linux e Windows com C++

Aprenda C++ Moderno e crie Games, Programas CLI, GUI e TUI de forma fácil.

Saiba Mais

Receba as novidades no seu e-mail!

Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!