« Comment faire pour extraire puis blitter chaque dessin d'un "tile set" sans avoir à les découper via paint? »
Surface.blit
draw one image onto another
Surface.blit(source, dest, area=None, special_flags = 0): return Rect
Le paramètre area est un rectangle définissant la sous-section de la surface source à blitter s'il est défini.
http://www.pygame.org/docs/ref/surface.html#Surface.blit
Surface.subsurface
create a new surface that references its parent
Surface.subsurface(Rect): return Surface
Tu peux aussi créer une sous-surface enfant
« Peut-on créer des animations (par exemple pour faire marcher un personnage)grâce à pygame? Ou faut-il obligatoirement des dizaines et des dizaines d'images à blitter à la suite tous les 10 millièmes de secondes (environ)? Parce-que cette dernière méthode me paraît très complexe et longue à mettre en place. »
Les animations ne sont rien d'autre que des dizaines d'images se succédant à une fréquence plus ou moins élevée. C'est donc LA technique générale d'animation, toutes les autres techniques sont des mécanismes plus haut niveau qui cachent les dizaines d'images sous des abstractions diverses. Libre à toi d'implémenter une telle surcouche pour te simplifier la création d'animation.
Par exemple une première abstraction utile : tu peux te dire qu'une animation, ce sont toutes les sous-images d'un charset donné plus une fréquence d'affichage. Donc il te faut un charset, un gabarit (rectangle) , une période de temps. au chargement tu découpes ton charset avec le gabarit et tu mets toutes les sous images dans une liste. Et pour afficher ton animation, tu en affiches d'abord la première image, puis toutes les <periode> milisecondes, tu passes à la suivante.