Pygame pour les zesteurs

Un tutoriel pour vous apprendre à vous servir de pygame, et seulement à partir d'un zeste !

a marqué ce sujet comme résolu.

Bon alors, c'est parti !

Dans l'introduction,

Si ce n'est pas le cas, je vous renvoie à ces différents tutoriels, très bien faits :

très bien faits, ça ne passe pas trop. Utilise plutôt écrits, ou change carrément la forme de la phrase.

De plus, les-dits tutoriels n'ont pas à proprement des parties

à proprement parlé ?

our aider le débutant dans sa première utilisation de la bibliothèques.

Il n'y a pas de s à bibliothèque.

Il doit donc lire toute une doc

Documentation. Tu ne perds rien à ne pas abréger.

Ensuite, dans la partie I.1 :

Pour les utilisateurs de Python 3.3, … hélas je n'ai plus de lien

Tu n'as plus de lien ? Dans ce cas, il peut-être préférable de ne pas en parler (sauf si tu retrouves ton lien).

de les rendre transparente

Il y a un s à transparentes.

Par contre, je n'ai pas lu toute cette partie. Ton tutoriel s'adresse aux personnes n'ayant jamais utilisé Pygame (ce qui est mon cas). Je viens ici pour apprendre à utiliser ce module, et on me balance une liste avec pleins de modules. Cette liste ne me sert actuellement à rien, je n'en suis pas plus avancé. Peut-être devrait tu la déplacer dans une autre partie, ou bien même dans une partie annexe.

Tu as également fais le choix d'être très proche du lecteur (nombreux smileys, tu expliques pourquoi tu rédiges ce tutoriel, etc..). Si tu pars sur ce point, n'hésites pas à jouer dessus et à profiter des avantages que tu peux en tirer (par exemple, rendre la lecture plus vivante qu'un simple manuel).

C'est tout pour le moment.

+1 -0

Salut ! j'espère que mes remarques ne seront pas redondantes avec ce qui a déjà été dit :-° Bon courage pour la suite ! j'essaierais de continuer ma relecture :)

Remarques générales

  • Nom des variables : anglais ou français ? je sais que c'est un gros débat, mais vu que toutes les fonctions de pygame sont en anglais ça me paraît plus logique d'utiliser cette langue.
  • Quand tu fais référence à un mot clé de python / une fonction utilise plutôt la sytaxe markdown
1
`le mot clé`
  • Pour les captures d'écran : essaie d'être le plus neutre possible, c'est à dire ne montre que le strict minimum (ton bureau Windows, c'est ta vie privée ;) )

Créer une simple fenêtre (customisable !)

Créons une fenêtre basique

J'initialise pygame

Donne quelques détails, ou au moins un lien qui explique ce qu'il se passe.

Pas demandé de gérer les événements

C'est quoi un événement ? Tu l'introduis plus tard dans le cours, ok, mais peut-être qu'un lien ne serait pas de trop ? ou carrément déplacer la partie sur les événements avant celle sur l'affichage d'images.

Je sort

je sors

j'import

j'importe

la boucle continue de boucler

laquelle ? (oui je suis chiant :k)

Toujours dans cet exemple tu utilises un int, peut-être qu'un bool serait plus approprié ?

Personnalisons notre belle fenêtre !

Tout d'abord, nous allons quels arguments

Il manque un verbe :p

cela pourrait faire que votre jeu serai plus lent que la normale

Cela pourrait ralentir votre jeu.

la fenêtre n'aura pas de bordures, il sera donc impossible de la déplacer

C'est la fenêtre qui est impossible à déplacer.

Ce n'est peut être pas clair, voici le code que j'ai utilisé :

Non pas trop :p

Ici le rectangle rose sera votre "écran", mais vous pourrez en dépasser bien entendu, ce n'est qu'un cadre si vous voulez.

Ça sonne un peu bizarre non ? Je ne trouve pas cette phrase très claire :/

Afficher des images

Afficher une image sur notre belle fenêtre !

c'en est un

ç'en est un

La gestion des événements

Et non :) Vous ne vous rappelez pas de ce que j'ai dit un peu avant ?

Je ne vois pas dans quelle partie tu en a parlé :(

C'est généralement celui-ci que l'on utilise, car il permet de tout couvrir.

car il permet de gérer tout les cas.

Les types d'événements disponnibles

Grrrr un seul n ! ^^

Il renvoi le gain, c'est à dire si vous avez perdu ou gagné le focus, et son state, qui veut dire soit : la fenêtre est visible, la fenêtre est icônifiée dans la barre des taches

Ne mélange pas de l'anglais et du français dans tes phrases.

De cette manière, un seul appuie à la fois

un seul appui

JOYBALLMOTION est appelé quand vous bougez une des ball de votre manette

Sur tout ce paragraphe il y a des mélanges anglais/français. Utilise la syntaxe markdown pour surligner le code ;)

Celui-là ne sera donc pas très utile, car il est enclenché uniquement quand vous devez réactualiser une portion de votre écran

car il est déclenché

Les événements disponnibles !

re-grrrrr un seul n !

Maintenant que nous avons vu quels types d'événements sont disponnibles, idem

Entrainons-nous avec les événements !

Je ne sais pas si c'est possible, mais si oui je pense que des titres de sous-sous partie serait plus efficaces que les traits pour délimiter les exos

Salut ! j'ai continué ma lecture de ton tutoriel, voilà mes remarques :)

Remarques générales

Cette partie est bien écrite ! J'ai surtout relevé des fautes de frappe. Par contre j'ai vu que tu n'hébergeais pas tes images sur Zds ? Ça serait plus prudent de le faire non ?

Afficher du texte

Font

Pour Font, c'est exactement pareil que pour SysFont, sauf que là, le fichier de police doit être dans le répertoire de votre projet !

Est-ce qu'on peut également indiquer la position de la police dans l'arborescence ? par exemple "/home/moi/police.ttf"

Si vous n'avez de police sous la main, ou que vous ne voulez pas en télécharger une, vous pouvez utiliser la police par défaut de Pygame : freesansbold.ttf (Pygame ira chercher la police dans son répertoire à lui, ne vous inquiétez pas)

dans la doc il y a :

If the filename is None the Pygame default font will be loaded.

Doc de pygame

je ne sais quel autre compiler

compilateur

Module time

La class Clock

la classe Clock

ce serait toujours aussi dégueulasse

Même si tu choisis d'être proche de ton lecteur, ça risque de ne pas passer à la validation :p

Lignes 8 -> 10

Lignes 8 à 10 c'est plus court et plus clair non ?

et une var

variable

qu'il va occupé

occuper

ca il doit calculer quelques valeurs dans ma boucle tout de même

"car" je présume :)

Faire apparaitre un événement toutes les x millisecondes

Déclancher un événement c'est plus la classe non ?

A quoi ça peut bien servir ?

Une idée : continuer à animer un ennemi même si l'utilisateur ne fait rien par exemple. Ça simplifie la boucle principale car le mouvement des ennemis (enfin dans mon exemple hein !) passe alors tout simplement dans la gestion des événements :)

Une autre idée : ça peut-être un moyen rigolo d'implémenter le '_' qui clignote à la fine de la saisie :-°

Module draw

Dessine moi … un "rect" !

Les polygons de Pygame

Les circles et les ellipses

Pour ces titres, je me demande si "Dessines-moi … un rectangle !", "Les polygones de Pygame" et "Les cercles et les ellipses" ne seraient pas plus pertinents.

Exercices

Même remarque que pour les autres exercices à propos des titres :p

Edit : Cadeau :)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
from math import pi, cos, sin
import pygame
from pygame.locals import *

pygame.init()

ecran = pygame.display.set_mode((640, 480))

continuer = 1

liste_de_points = []
nb_pics = 5
for i in range(nb_pics):
   liste_de_points.append(
       (30 * cos(i * pi / (nb_pics / 2)) + 60, 30 * sin(i * pi / (nb_pics / 2)) + 60))
   liste_de_points.append((15 * cos((i + 1 / 2) * pi / (nb_pics / 2)) +
                           60, 15 * sin((i + 1 / 2) * pi / (nb_pics / 2)) + 60))

while continuer:
   for event in pygame.event.get():
       if event.type == KEYDOWN:
           continuer = 0
   pygame.draw.polygon(ecran, (150, 150, 80), liste_de_points)
   pygame.display.flip()

pygame.quit()

+2 -0

Salut,

Introduction générale

les-dits tutoriels n'ont pas à proprement parlé

à proprement parler

parlé des parties de TP / TD1

1 Travail Dirigé, un TP guidé donc :)

parlé de Travaux Pratiques (TP) / Travaux Dirigés (TD) (je pense que la note de bas de page n'est pas pertinente ici et que tu peux t'en passer)

d'autres sites ^^ 2

2 du moins je l'espère :D

pareil, je ne pense pas que la note de bas de page soit pertinente ici

et je dirai presque

dirais

Et ensuite, c'est une bibliothèque que je connais déjà :p !

ce qui est assez normal :p ; je pense que cette remarque a plus sa place dans la partie "Pourquoi ce tutoriel" qui explique tes motivations quant à l'écriture du tutoriel. Parce que où tu l'as mise, la partie est plutôt destinée à expliquer au lecteur ce qu'est Pygame. Du coup, tu pourrais aussi enlever le bloc de question.

Et maintenant, Go !

Et maintenant, allons-y !

Installer et importer Pygame

Sinon il faut passer par la manière forte avec les fichiers wheel de Python :-°

Tu devrais reformuler ta phrase ou au minimum expliquer un peu plus, parce que je ne sais pas ce qu'est un fichier wheel pour ma part.

Si tout ce passe bien

se

dont l'installation s'est bien passé

passée

Créer une simple fenêtre (customisable !)

personnalisable serait préférable à customisable ou alors explique le terme. Même remarque pour customiser. personnaliser (customiser)

contenant 300, 200

contenant 300 et 200

le code de chaque event

évènement (event)

n'est autre qu'un int

entier (int)

qui représentent les touches A et G

qui représentent respectivement les touches A et G

alors je met

mets

le "trick"

l'astuce

Ah, ça, je ne vous le dirais pas

dirai

Remarques générales :

  • Trop de smileys
  • Pour les fautes d'orthographe, essaie de te relire plus ou utilise un correcteur orthographique.
  • Je pense qu'il faudrait rajouter un lien vers le site officiel de Pygame dans l'introduction tout en expliquant brièvement au lecteur ce qu'il peut y trouver.
  • Pour pygame.FULLSCREEN, tu devrais préciser que cela supprime les bordures par la même occasion (j'ai dû faire Ctrl+Alt+Suppr pour quitter avec une résolution de (300, 200)) ^^ .
  • Pour le moment, c'est pas mal, tu as ton style à toi, je n'ai pas encore suffisamment lu pour me faire un avis. En tout cas, ça me semble suffisament pédagogique.

Courage ! Je continuerai ma lecture.

+2 -0

pour les fautes d'orthographes, j'en fais pas d'habitude (vraiment hein) c'est juste je me relis … pas du tout

C'est dommage. Tu sais que tu vas publier ton contenu en bêta, fais au moins l'effort de te relire. Après nous passons derrière toi à te signaler des fautes qui auraient pu êtres évitées. Dis-toi aussi que si l'on te fait moins de remarques sur l'orthographe, on pourra t'en faire plus sur le fond, et ton tutoriel n'en pourra être que meilleur.

Me revoilà,

Afficher des images

votre image aie été chargée

ait

Personnellement, je met

mets

afficher une image sur une autre sur une autre

afficher une image sur une autre puis encore sur une autre

une image converti en un format lisible par pygame

convertie & Pygame

Mais effectivement cela peut être long de mettre

Tu peux enlever le "Mais effectivement" qui n'a guère de sens ici.

il faut garder le tuple de position de l'image de notre personnage !

Préciser dans une variable en général

La gestion des événements

bientôt le votre

vôtre

si aucuns événements ne sont produits

ne se sont

cette screenschot

cette capture d'écran (screenshot)

Alors que pygame.event.wait, lui va faire 'dormir' notre programme en attendant qu'événement arriven sur la queue !

arrive

est un iterable

est itérable

Il ne renvoi rien.

renvoie

ACTIVEEVENT, Pygame nous indique ceci :

Pour/Concernant ACTIVEEVENT

il renvoi

renvoie

il indique quelles touches de contrôles sont actuellement active

actives

modifier

pour le modifier, mets le mot en italic qu'on puisse faire la différence avec le mot français

et renvoi

renvoie

value`

value

je vous serai

serais

quels types d'événements

événement

Remarques générales

  • Il me semble que ça a déjà dit, mais tu devrais faire des captures d'images plus propres où on ne voit que la partie intéressante et pas tout ton bureau. Si tu es un vrai tu peux utiliser paint pour découper tes images ^^ . Par exemple, je suis sûr qu'il a moyen de faire une illustration plus propre pour tes deux screens de la partie "Afficher des images".
  • Tu devrais changer le titre de ton image pour la partie "Afficher des images", car "debile10.png" ça ne donne pas une bonne image.
  • Pour la partie des événements, tu devrais expliquer brièvement ce que sont les queues. Une ou deux phrases suffisent à faire comprendre la chose : c'est l'analogie de la file d'attente ; premier arrivé, premier servi (sorti) ! Par ailleurs, tu dis souvent "sur la queue", je pense qu'il serait plus correct ici de dire dans la queue. On dit dans la file. Et on dit sur (/dans) la pile (stack).
  • Pour les événements, je suggère de ne pas placer tous les exercices à la fin, mais de les disséminer au fur et à mesure histoire que le lecteur pratique au fur et à mesure pour intégrer les informations qu'il a lues, et qu'il ne se retrouve "dos au mur" au bout de la page.
  • Le contenu reste agréable à lire.

Courage et à bientôt.

+1 -0

Re,

[TD] Un petit jeu très simple

qu'il y ai

ait

L'architecture que j'ai choisi

choisie

Dans tout jeu, on a des constantes. C'est comme ça et il faut dire que

(Mal expliqué à mon goût) Dans la plupart des jeux, il y a des constantes. Il faut dire que…

pixel / secondes & pixels / secondes

seconde (sans s !)

se déplacer de haut en bas (tout en restant sur l'écran hein !)

tout en restant dans la fenêtre hein !

si elle collide avec notre raquette

si elle est en collision (collide) avec notre raquette

la dessus

là-dessus

N'oubliez pas que notre raquette sera dans une class !

sera une classe

la balle stock

stocke

qu'elle est en

ait

Et voici ma version de cette class

classe

mes class

classes

D'ailleurs, vous avez du remarquer que notre balle ne collide pas correctement avec la raquette

dû // n'entre pas en collision (collide) correctement

Annexes

petits modules très utile

utiles

Et ça sera bientôt le votre ! Il permet de récupérer des éventements

vôtre & évènements

screenschot

screenshot

Introduction "Utilisation avancée de Pygame"

jouer de la music

musique

utiliser des spritesheets avec Pygame grâce au module Sprite

C'est à dire ? Tu devrais expliquer brièvement ce que c'est (vu que ça sera expliqué plus en détail dans la partie concernée).

Afficher du texte

si il vaut True

s'il

couleur grise claire

gris clair

Module time

quels sont les possibilités offertes

quelles

qui a va

qui va

je ne le fait

fais

Remarques générales

  • Dans la partie TD, tu parles de vecteur directeur, mais tu devrais expliquer brièvement au lecteur en quoi cela consiste. Un déplacement (x, y) tout simplement.
  • Dans la partie Annexes, tu mentionnes le site officiel de Pygame, mais encore une fois, tu devrais en parler brièvement dans l'introduction, ou en tout cas préciser plus ce que tu peux y trouver (documentation, codes, forums, etc…)
  • Tu emploies souvent des mots en anglais où tu ne devrais pas (ex : mes class ; jouer de la music)
  • Dans la partie "Afficher du texte", voir peut-être pour réduire le nombre de blocs spéciaux
  • Rien à redire pour le module time

Courage et à bientôt.

+1 -0

Re-re,

Alors voyons les circles, et les ellispses

ellipse

pygame.display.set_mode, celle là je l'ai déjà présenté

celle-là & présentée

1.0 est la valeur que je qualifierai de 'normale', ou encore de 'standard'

qualifierais

pygame.display.get_driver renvoi

renvoie

pygame.display.Info() est une class.

classe

mettre en plein notre fenêtre

mettre en plein écran

Et ce avec le module maths qui regroupe 2 class très intéressantes selon moi :

classes

pygame.key.get_focused qui renvoi True si votre fenêtre a le focus du clavier ou False dans le cas contraire

renvoie

qui retourne une list de bool indiquant si tel ou tel touche est pressée.

telle ou telle

Par contre celui là ne renvoi pas une list mais … un int

renvoie

D -> D -> D -> D -> D juste pour se déplacer 4 fois à droite

5 :P

renvoi

renvoie (pour les deux points)

Remarques générales

  • Il y aurait aussi des images à refaire dans la seconde partie (histoire encore une fois de ne montrer que le nécessaire au lecteur).
  • Je n'ai pas trop compris l'intérêt du module scrap, d'autant plus que le module image permet lui aussi de sauvegarder des images, peux-tu m'expliquer ? "Il permet d'envoyer et de recevoir des informations du presse papier", c'est-à-dire ?
  • Le tutoriel est plutôt complet et la seconde partie est particulièrement intéressante, lui permettant de se démarquer d'autres écrits déjà existants.
  • Le tutoriel propose pas mal d'exercices (sympathiques qui plus est) pour pratiquer ce qui est une bonne chose.

La partie II contient pas mal de sections pas encore terminées, donc je repasserai sans doute dans le futur pour achever ma lecture. Le tutoriel me semble être bien parti. À bientôt.

PS : Du coup quand j'ai un peu de temps, je code mon propre Pong ^^

Pong

+2 -0

Il tombe super bien, votre tutoriel sur pygame!

Je suis complètement débutant en programmation, et je suis justement occupé sur un premier projet concret avec pygame. Or je cale sur un point, et je crois que j'aurai besoin des "mask", mais je n'ai pas compris grand chose à la doc à ce sujet (le tutoriel sur lequel je me suis basé pour commencer avec pygame n'aborde pas les mask). Comme je vois que vous prévoyez une partie consacrée à cela, je me réjouis d'avance!

Bonne continuation dans la rédaction, je n'ai fait que survoler rapidement votre tuto jusqu'ici, mais j'y reviendrai certainement plus en profondeur prochainement!

Merci beaucoup pour le travail déjà fait, et celui à venir! :-)

+1 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte