La dernière version que j'ai annoncé il y a deux semaines était une version rapide. J'avais implémenté en priorité les parties les plus importantes de l'API (les classes et fonctions les plus utilisées) pour rendre le binding le plus utilisable possible. J'ai maintenant le plaisir de vous annoncez que la mise à jour est finie et que le binding est
complet,
propre et
stable.
Quand je dis
complet, je me référe à un binding contenant toutes les classes et fonctions disponibles dans la SFML séparées dans cinq différents modules: system, window, graphics, audio et network. Le module réseau est fournis dans le but d'être
exhaustive mais son utilisation est découragée parce que la bibliothèque standard de Python en fournit fournit déjà un. Une
documentation, un
tutorial and les
exemples officiels sont inclus pour vous aider à utiliser le binding. Par exemple, ça vous explique comment
intégré pySFML2 avec PyQt4.En disant
propre, je veux parler d'un binding où les messages d'erreur sont gérés
proprement et où vous ne devez pas utiliser un "byte string" pour tout lorsque vous utilisez Python 3. Le code source est aussi propre donc pour les personnes qui aimeraient contribuer ou tout simplement modifier le code, ils trouveront un code suivant des conventions, utilisant la syntaxte correcte de Cython et séparé dans différents fichiers.
En disant
stable, je veux parler d'un binding où des
tests automatiques ont été fait, et pourra dans le future m'empècher d'introduire de nouvelles erreurs, de nouveau bugs quand je ferais des changements. Bien sûr je ne peux pas prétendre qu'il n'y ai pas de bug parce que c'est sa première sortie et j'espère recevoir un maximum de feedbacks afin de corriger les derniers bugs.
Je considère le binding
plus pythonic parce qu'il n'essaie pas d'émuler les multiples définitions qu'on trouve en C++ et que Python ne supporte pas, et vous n'aurez pas à vous préoccupé des types, ce qui donne plus de
fléxibilité au binding.
Cette version inclus deux exemples en plus: pong.py et shader.py.
Des installateurs pour
Windows et des pacakges pour
Ubuntu sont fournit pour l'aisance d'installation.
Pour vous donner un aperçu, ici sont quatres bout de code qui résume des fonctionnalitées intéressante que vous ne trouvez pas dans le binding officiel.
Importez les modules indépendamment.
from sfml.window import sf # need only the window module ?
from sfml.audio import sf # need only the audio module ?
Plus de flexibilité quand vous utilisez les vectors.
vector = sf.Vector2()
vector.x = 23 # set an integer
vector.y = 6.42 # set a float
vector.z = Decimal(0.12346578) # set a decimal for advantages over the float datatype
La manière dont vous gerez les évenements pourraient vous surprendre
for event in window.events:
if type(event) is sf.CloseEvent:
window.close()
if type(event) is sf.KeyEvent and event.pressed:
character.fire()
if type(event) is sf.FocusEvent:
if event.lost: music.stop()
elif event.gained: music.play()
sf.Image a une méthode spécial qui vous permet the visualiser l'état courrant d'une image. Très utile pour débugger.
image.load_from_file("myimage.png")
image.create_mask_from_color(sf.Color.YELLOW)
image.show() # launch a viewer with the current image state
Je vous renvois à la documentation en ligne pour l'installation et les explications.
Site web:
http://openhelbreath.net/python-sfml2/Documentation:
http://openhelbreath.net/python-sfml2/documentation.htmlBugtracker:
http://openhelbreath.net/python-sfml2/flyspray/Github:
https://github.com/Sonkun/python-sfml2La prochaine version devrait ajouter les derniers examples officiels manquants (voip.py, x11.py, cocoa.py et win32.py), règler un maximum de bugs (si il y en a) et fournir des installateurs pour
Mac OSX et les pacakges pour
Fedora.
J'espère qu'il n'y a pas de bug majeur qui vous empéchera d'utiliser le binding.