2011-07-05 4 views
4

Je suis relativement nouveau sur python et j'ai fait quelques outils utiles et de petits jeux avec 10 sprites en python; basé sur la performance, je pense que ma prochaine étape logique est de faire des extensions C pour améliorer les performances dans pygame.Pygame; faire des extensions C

Ma première question initiale est en pygame, puis-je faire une boucle principale en C (ou devrais-je m'interfacer avec SDL?). Et les sprites, pourrais-je faire du code C qui gère strictement les sprites, et seulement utiliser python à des fins de script du jeu?

+0

Si elle fonctionne assez vite, vous n'avez pas besoin d'en réécrire une partie en C. En fait, cela serait contre-productif. – delnan

+0

Je ne serais pas d'accord, car mon ami a fait une variante d'évasion parmi d'autres jeux qui ne reçoivent que 10-15 fps à cause de "sprites" dans pygame – noboody

Répondre

3

Sans aucune connaissance de votre code, je peux faire ces suggestions. Puisque vous êtes à juste titre préoccupé par les performances, au lieu d'essayer d'améliorer les performances en écrivant des modules C, essayez d'optimiser le code python que vous avez écrit. Un bon article sur la façon de le faire peut être trouvé dans ce article about patterns at Python.org.

Pour répondre à votre question sur la boucle principale, cela dépend de ce que vous entendez par boucle principale. Voulez-vous dire int main(int argc, char *argv[]) ou parlez-vous SDL_main?

Vous pouvez créer un programme C qui exécute python à des fins de script. Vous pouvez l'exécuter en tant que script python, qui exécute des modules C pour des performances supplémentaires. Je ne sais pas si vous pouvez mélanger et assortir en utilisant SDL en python et aussi en C, mais ne voyez pas pourquoi cela ne fonctionnerait pas, mais je n'ai pas essayé de le faire.