ATTENTION : ceci est la documentation d'une version antérieure de SFML ; la documentation de la dernière version officielle est accessible via le menu principal

Tutoriel - Démarrer - SFML et Python

Introduction

Le but de ce tutoriel est de vous expliquer comment compiler / installer / utiliser le binding Python de SFML (qui est appelé PySFML).

Installer PySFML

Vous devez tout d'abord télécharger le SDK PySFML (SFML-x.x-python-sdk-windows ou SFML-x.x-python-sdk-linux), qui peut être trouvé sur la page des téléchargements. Cette archive contient le code source, les exemples et un fichier d'installation pour construire et installer PySFML.

Pour installer directement les binaires précompilés, ouvrez une invite de commande dans le répertoire SFML-x.x/python, puis tapez :

python setup.py install

Sous Linux, vous devrez avoir les droits root pour installer les fichiers :

sudo python setup.py install

Si vous désirez compiler PySFML depuis le code source, vous devez avoir les en-têtes et bibliothèques C++ de SFML dans le répertoire SFML-x.x (aindi que le dossier python), et entrer la commande suivante :

python setup.py build

Sous Windows, cette commande utilise Visual C++ 2003 par défaut. Mais vous pouvez tout aussi bien compiler avec MinGW si vous le souhaitez, an ajoutant l'option "-cmingw32" :

python setup.py build -cmingw32

Puis vous pouvez installer PySFML avec la commande vue précédemment :

python setup.py install

Ecriture de votre premier programme PySFML

Contrairement aux bibliothèques C++, PySFML rassemble toutes les classes SFML dans un module unique ("sf"). Comme Python ne supporte pas les threads nativement, et qu'il possède des propres classes pour le réseau, seules les classes des modules système, fenêtrage, graphique et audio sont exposées dans PySFML.

Voici un morceau de code SFML très simple qui ouvre une fenêtre et y affiche du texte :

# On inclus l'extension PySFML
from PySFML import *

# On crée la fenêtre principale
window = sf.RenderWindow(sf.VideoMode(800, 600), "PySFML test")

# On crée une chaîne graphique à afficher
text = sf.String("Hello SFML")

# On démarre la boucle de jeu
running = True
while running:
    event = sf.Event()
    while window.GetEvent(event):
        if event.Type == sf.Event.Closed:
            running = False

    # On affiche le texte, puis on met à jour la fenêtre
    window.Draw(text)
    window.Display()

Il n'y a aucune documentation pour ce binding Python. Toutefois, les classes sont identiques et vous pouvez donc tout à fait utiliser la documentation complète pour C++ ainsi que les tutoriels du site.

Le répertoire "samples" contient quelques démos utilisant PySFML, vous pouvez les essayer pour vous assurer que tout fonctionne correctement après compilation et/ou installation