La SFML (Simple and fast multimedia library) est une bibliothèque multimédia pour la création d'applications multimédias 2D (comme des jeux). C'est à l'origine une bibliothèque pour le langage C++, et ce projet n'a rien d'officiel.
Bon, si vous lisez cette page, vous devez sans doute déjà connaitre la réponse. Sinon, allez sur le site de l'INRIA.
Les modules System et Window sont terminés et (visiblement) fonctionnels. Le module Graphics est bientôt terminer (il ne lui manque que les Shapes et PostFX). Le module Audio va bientôt suivre (disons pour janvier). Le module Network n'est pas prévu pour l'instant (mais si quelqu'un en fait la demande, alors si).
N'étant pas du tout d'une version terminée, il est clair que ce n'est pas une version stable, alors il est possible que vous rencontiez des bogues.
Voilà un code bien inutile qui affiche une image qui suit le pointeur de la souris
open Sfml;; (* Cree une fenetre (renderWindow) *) let win = new renderWindow(videoModeFrom 800 600 32, "HelloWorld", FixedBarClose);; (* Cree un sprite et ouvre une image *) let s = new sprite();; let img = new image(File("terre.png"));; s#setImage(img);; s#setY 200.;; (* Cree une chaine de caractere *) let hello = new sfString();; w#showMouseCursor false;; let ft = font_createfromfile "police.ttf" 48;; hello#setFont(ft);; hello#setText "Hello World !";; hello#setSize 48.;; hello#setX 200.;; (* Variables utiles *) let ev = ref NullEvent;; let b = ref true;; while !b do let eventEnCours = ref true in let ipt = w#getInput in w#drawSprite s; w#drawString hello; w#display; s#setX (float_of_int(ipt#getMouseX)); s#setY (float_of_int(ipt#getMouseY)); (* Tant qu'on peut récuperer des évenements *) while !eventEnCours do ev := w#getEvent; match !ev with (* Fenetre fermée *) Other(EvtClosed) -> b := false (* Event "vide" *) | NullEvent -> eventEnCours := false (* Cas général *) | _ -> () done; done;;
Elle est accessible ici.
Ce programme nécessite d'avoir au préalable installé la SFML : Téléchargement de la SFML
Pour ouvrir une console OCaml, lancer, dans le dossier où se trouve la bibliothèque : ocaml sfml.cma.
Pour compiler un projet : ocamlc libsfmlml.a sfml.cma [...] -cclib "-lsfml-graphics -lsfml-window -lsfml-system".
Note : sous Windows, il est nécessaire d'ajouter l'option -cc "g++"