MagPI 3 Page 26

De Le French MagPi
Aller à : Navigation, rechercher

Problème avec "graphics screen surface". On met entre guillemet pour surface ou on garde comme j'ai mis ? Pour "surface" on le met entre guillemet ou pas ? C'est pour marque la différence avec une vraie surface ? ...

Dans le numéro 2, nous vous avons montré comment créer une surface graphique à l'écran et dessiner des formes à l'intérieur. Ce mois-ci, nous allons nous pencher sur la superposition de plusieurs surfaces au-dessus de la surface principale. Vous pouvez penser chaque surface comme une fenêtre séparée à l'intérieur de la surface principale. Ne vous inquiétez pas si cela parait compliqué, les exemples suivants devraient vous aider à comprendre le principe.

NOTE : Pour ces exemples, vous aurez besoin de Python et Pygame installés sur votre ordinateur.

Nous allons dessiner une image avec de l'herbe, le ciel et un soleil. Nous pourrions tout dessiner sur une seule surface. L'avantage, en assignant une surface pour chaque objet, c'est de pouvoir facilement les manipuler et les bouger. Si vous dessiniez le soleil sur la même surface que le soleil, et que vous essayiez alors de bouger le soleil, vous laisseriez une trainée jaune où se trouvait le soleil. Pour résoudre cela, il faudrait redessiner le ciel à chaque fois que le soleil bouge. Avec des surface en couche, vous n'avez pas à vous souciez des trainées laissées par vos graphiques à l'écran comme sur un Télécran.


  1. THREE SURFACES
  2. By Jaseman - 13 June 2012
  3. TROIS SURFACES
  4. Traduit par SF - 23 Juillet 2012

import os, pygame; from pygame.locals import * pygame.init(); horloge = pygame.time.Clock() os.environ['SDL_VIDEO_WINDOW_POS'] = 'center' pygame.display.set_caption("Trois Surfaces") ecran = pygame.display.set_mode([400,200],0,32) # L'écran principal screen ciel = pygame.Surface((400,200)) # La surface ciel ciel.fill((200,255,255)) # Rempli la surface ciel en bleu herbe = pygame.Surface((400,100)) # La surface herbe herbe.fill((50,150,50)) # Rempli la surface herbe en vert soleil = pygame.Surface((40,40)) # La surface soleil pygame.draw.circle(soleil,(255,255,0),(20,20),20) ecran.blit(ciel,(0,0)) # Place la surface ciel en x,y ecran.blit(soleil,(180,30)) # Place la surface soleil en x,y ecran.blit(herbe,(0,100)) # Place la surface herbe en x,y grass pygame.display.update() pygame.time.wait(10000) # Pause de 10 secondes avant la fin du programme

Vous noterez que la surface du soleil à une couleur de fond noire. Les surfaces sont toujours rectangulaires. Nous pouvons arrondir la surface du soleil au lieu de la laisser rectangulaire en mettant du noir dans une couleur transparente. Lorsque c'est transparent, le ciel bleu passera à travers, remplissant ainsi les coins noirs...

Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Boîte à outils