IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Apprendre la conception des jeux avec Pygame - Chapitre 1 : Dessiner des formes et des trajectoires,
Un tutoriel de Sean M. Tracey

Le , par deusyss

37PARTAGES

8  0 
Bonjour à tous,

Je vous propose ICI, la traduction du premier chapitre du livre Make Games with Python.

Les chapitres suivants suivront.

Bonne lecture à tous.

Retrouvez les meilleurs cours et tutoriels pour apprendre la programmation Python
Retrouvez les meilleurs cours et tutoriels pour apprendre la programmation des jeux

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de josmiley
Membre expérimenté https://www.developpez.com
Le 28/09/2016 à 22:38
bof, rien que le 1er bout de code n'est pas bon ...
plus correcte à mon avis:

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
import pygame
# pygame.init() pas utile
# allonge le temps de fermeture de la fenetre
# il vaut mieux initialiser seulement les modules utilisés
window = pygame.display.set_mode((500, 400))
pygame.draw.rect(window, (255, 0, 0), (0, 0, 50, 30))
pygame.display.update()
while pygame.event.wait().type != pygame.QUIT:
	# attend la fermeture de la fenetre
	# et par la même accasion lit la file d'événements
	# qui sous windows empeche que "la fenetre ne repond pas"
	pass
pygame.quit() # necessaire sous windows
1  0 
Avatar de deusyss
Expert éminent https://www.developpez.com
Le 29/09/2016 à 7:28
Citation Envoyé par josmiley Voir le message
bof, rien que le 1er bout de code n'est pas bon ...
Bonjour Josmiley,

Le premier code fonctionne parfaitement chez moi (Python 3). Il n'est cependant pas du tout optimisé, il est vrai.

Le livre originel vise à apprendre le Python aux personnes n'y connaissant rien, à travers la création de jeux avec Pygame. Nous avons essayé de rester le plus fidèle à l'original lors de la traduction.

Je te remercie pour ton code qui aidera certains
1  0 
Avatar de josmiley
Membre expérimenté https://www.developpez.com
Le 29/09/2016 à 11:27
Citation Envoyé par deusyss Voir le message
Bonjour Josmiley,

Le premier code fonctionne parfaitement chez moi (Python 3). Il n'est cependant pas du tout optimisé, il est vrai.

Le livre originel vise à apprendre le Python aux personnes n'y connaissant rien, à travers la création de jeux avec Pygame. Nous avons essayé de rester le plus fidèle à l'original lors de la traduction.

Je te remercie pour ton code qui aidera certains
Bonjour deusyss,

je sais bien que le code fonctionne, mais par "pas bon" j'entends deux choses, c'est juste un avis personnel:
Je pense qu'apprendre aux débutants à écrire des codes qui fonctionnent plutôt que des codes "pythoniques" n'est pas une bonne approche.
Le code donné ne fait pas ce qu'il est sensé faire, càd dessiner un rectangle coloré, mais accumule des rectangles colorés, ce qui n'est pas la même chose.

voici deux codes qui illustrent la différence:
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
import pygame
import pygame.gfxdraw

pygame.init()
window = pygame.display.set_mode((500, 400))
while True:
	pygame.gfxdraw.box(window, (0, 0, 50, 30), (255, 0, 0, 50))
	pygame.display.update()
	pygame.time.wait(500)
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
import pygame
import pygame.gfxdraw

pygame.init()
window = pygame.display.set_mode((500, 400))

pygame.gfxdraw.box(window, (0, 0, 50, 30), (255, 0, 0, 50))
pygame.display.update()

while True: pass
1  0 
Avatar de deusyss
Expert éminent https://www.developpez.com
Le 29/09/2016 à 19:38
Citation Envoyé par josmiley Voir le message
Je pense qu'apprendre aux débutants à écrire des codes qui fonctionnent plutôt que des codes "pythoniques" n'est pas une bonne approche.
Nous sommes bien d'accord sur cela. De même si le code ne fait pas tout à fait ce qu'il doit faire cela n'est pas le mieux.

Cependant, même si à priori, nous pourrions changer le code lors de la traduction (par exemple, il a été envisagé de mettre en place les règles de nommage Python), il a été décidé, pour diverses raisons, de rester le plus fidèle possible au modèle originale.

Mais puisqu'il semblerait que tu maîtrises à minima le sujet, je t'invite à poster une MAJ des codes si tu en ressent le besoin, afin de partager avec les autres membres. Ce serait super sympa
1  0 
Avatar de bizulk
Membre confirmé https://www.developpez.com
Le 13/10/2016 à 18:00
Effectivement je ne comprends pas l'intérêt du dessin en boucle sans modification d’événement, c'est mal habituer le lecteur débutant, et déplacé posé vis-à-vis des autres optimisations proposées.
C'est vrai que le dessein proposé est obtenir le plus rapidement possible du code fonctionnel, mais quelques lignes discutant de l'architecture, et remanier la boucle comme proposé ci-dessus, ce n'aurait pas été du luxe.
D'ailleurs on parle d'optimisation mais on ne lit aucun moyen de l'observer (pour l'instant ?)
J'attends de voir le reste du livre pour la critique définitive.
Ceci dit une traduction c'est une traduction par une revue.
Ca aurait été intéressant d'avoir un système d'annotation des livres (traduits ou pas) en ligne...
1  0 
Avatar de DMike92
Membre du Club https://www.developpez.com
Le 21/10/2016 à 18:58
C'est une manie assez fréquente, me semble-t-il chez Developpez.com de ne pas situer le contexte de travail
Il est dit "Ouvrez une console". Bon. OK :

pi@Rasp ~ $ ./jeu.py
import.im6: impossible de se connecter au serveur X `' @ error/import.c/ImportImageCommand/368.
./jeu.py: ligne3: Erreur de syntaxe près du symbole inattendu « window »
./jeu.py: ligne3: `window = pygame.display.set_mode((500, 400))'
pi@Rasp ~ $

En mode interactif, j'ai aussi (après avoir exécuté les lignes qui précèdent) :

>>> window = pygame.display.set_mode((500, 400))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
pygame.error: Unable to open a console terminal
>>>

Sérieusement pourrais-je avoir des détails sur l'environnement utilisé, je suis intéressé :-)
0  0 
Avatar de josmiley
Membre expérimenté https://www.developpez.com
Le 21/10/2016 à 22:28
Citation Envoyé par DMike92 Voir le message
C'est une manie assez fréquente, me semble-t-il chez Developpez.com de ne pas situer le contexte de travail
Il est dit "Ouvrez une console". Bon. OK :

pi@Rasp ~ $ ./jeu.py
import.im6: impossible de se connecter au serveur X `' @ error/import.c/ImportImageCommand/368.
./jeu.py: ligne3: Erreur de syntaxe près du symbole inattendu « window »
./jeu.py: ligne3: `window = pygame.display.set_mode((500, 400))'
pi@Rasp ~ $

En mode interactif, j'ai aussi (après avoir exécuté les lignes qui précèdent) :

>>> window = pygame.display.set_mode((500, 400))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
pygame.error: Unable to open a console terminal
>>>

Sérieusement pourrais-je avoir des détails sur l'environnement utilisé, je suis intéressé :-)
Tu es sûr d'avoir la bonne version de pygame ?
0  0 
Avatar de DMike92
Membre du Club https://www.developpez.com
Le 21/10/2016 à 22:53
Citation Envoyé par josmiley Voir le message
Tu es sûr d'avoir la bonne version de pygame ?
Encore une très bonne question. Y a-t-il des détail sur où et comment trouver pygame ? apt-get ? wget ? http... ?
Et... quelle et la bonne version ?
Et surtout : Windows ? Linux ? (Oui, bon là je fais exprès, mais c'est pour dire que tous ça est très secret ;-)
Et enfin : Quel environnement graphique ?
0  0 
Avatar de deusyss
Expert éminent https://www.developpez.com
Le 01/11/2016 à 18:56
Citation Envoyé par DMike92 Voir le message
Encore une très bonne question. Y a-t-il des détail sur où et comment trouver pygame ? apt-get ? wget ? http... ?
Et... quelle et la bonne version ?
Et surtout : Windows ? Linux ? (Oui, bon là je fais exprès, mais c'est pour dire que tous ça est très secret ;-)
Et enfin : Quel environnement graphique ?
Eh bien, le livre étant destiné à l'origine pour Raspberry Pi, je pense que la réponse est evidente Le livre a été écrit sur la version de raspbian en cours à l'époque.
0  0 
Avatar de DMike92
Membre du Club https://www.developpez.com
Le 01/11/2016 à 19:15
Citation Envoyé par deusyss Voir le message
Eh bien, le livre étant destiné à l'origine pour Raspberry Pi, je pense que la réponse est evidente Le livre a été écrit sur la version de raspbian en cours à l'époque.
OK deusyss, merci pour ta réponse. Donc Debian Jessie pour l'OS.
Mais quelle commande pour obtenir pygame ? J'ai trouvé ceci : http://pygame.org/download.shtml Le lien aurait pu être donné si c'est le bon (il y en a d'autres).
Et puis je doute qu'après avoir installé ceci ça résolve l'erreur que j'ai eu :
import.im6: impossible de se connecter au serveur X `' @ error/import.c/ImportImageCommand/368.
Quel serveur X ? Gnome ? J'ai pas.
Tout ça, en fait, pour dire que les articles en disent toujours très peu sur l'environnement de base pour que ça fonctionne.

Mais merci quand même :-)
0  0