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.
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
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
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: