Correction puis… « Amusons-nous avec Mario » !

Un corrigé de notre illusion de la semaine dernière pour commencer (« voir plus » en fin d’article)

Mario !

On réalise ensemble ce code :

import pygame
from pygame.locals import *
pygame.init()

fenetre=pygame.display.set_mode((800,600))
pygame.display.set_caption("Amusons-nous avec Mario!")
pygame.key.set_repeat(50,10)


persoG=pygame.image.load("mario_left.png").convert_alpha()
persorect=persoG.get_rect()
fond=pygame.image.load("sand.jpg").convert()

obstacle=pygame.Rect(400,100,50,400)

continuer=True
try:
    persorect.left=200
    persorect.top=200
    while continuer :
        fenetre.blit(fond,(0,0))
        if persorect.colliderect(obstacle):
            pygame.draw.rect(fenetre,(255,0,255),obstacle,0)
        else:
             pygame.draw.rect(fenetre,(255,255,0),obstacle,0)
        fenetre.blit(persoG,persorect)
           
        
        pygame.display.flip()

        
        #gestion des événements
        for event in pygame.event.get():   
            if event.type==QUIT:
                continuer=0
            elif event.type==KEYDOWN:   #appui sur une touche
                if event.key==K_ESCAPE:
                    print("touche Escape")
                    continuer=0
                elif event.key==K_LEFT:
                    print("touche Gauche")
                    persorect.left-=5
                    if persorect.left<-100:persorect.left=800
                    if persorect.colliderect(obstacle):
                        persorect.left=obstacle.right
                elif event.key==K_p:
                    print("capture d'écran")
                    pygame.image.save(fenetre,"mario.png")
                else :
                    print("autre touche")
            
            
finally:
            
    pygame.quit()

avec ces images

Et on s’amuse à agrémenter !

Un corrigé de notre illusion de la semaine dernière:

import pygame
from pygame.locals import *
pygame.init()

fenetre=pygame.display.set_mode((410,410))
pygame.display.set_caption("Test Illusion Rectangles et Disques")

# là il faut charger notre image dans une surface appelée calque
calque=pygame.image.load("cm-2018-09-28-calque.png").convert_alpha()
continuer=True
mettreCalque=0

while continuer :
    #remplir le fond
    fenetre.fill((149,184,82))

    #carrés bleus
    l=50
    for i in range(7):
        for j in range(7):
            x=i*60
            y=j*60
            pygame.draw.rect(fenetre,(0,0,255),(x,y,l,l),0)

    #disques blancs
    r=7
    for i in range(6):
        for j in range(6):
            x=i*60+55
            y=j*60+55
            pygame.draw.circle(fenetre,(255,255,255),(x,y),r,0)

    if mettreCalque == 1:
        fenetre.blit(calque,(xmouse-410,ymouse-410))
        # ici il faut changer pour afficher le calque
        # puisque la variable mettreCalque vaut alors 1
    
    pygame.display.flip()

    
    #gestion des événements
    for event in pygame.event.get():   
        if event.type==QUIT:
            continuer=0
        elif event.type==KEYDOWN:   #appui sur une touche
            if event.key==K_ESCAPE:
                print("touche Escape")
                continuer=0
            elif event.key==K_SPACE:
                print("touche Espace")
                # ici il faut changer pour que le calque s'affiche
                mettreCalque=1-mettreCalque
            elif event.key==K_p:
                print("capture d'écran")
                pygame.image.save(fenetre,"cm 2018-10-05 Capture.png")
            else :
                print("autre touche")
        elif event.type==MOUSEMOTION:
            xmouse,ymouse=event.pos
            print("La souris bouge en",xmouse,ymouse)
            
pygame.quit()

2 réflexions au sujet de « Correction puis… « Amusons-nous avec Mario » ! »

  1. Bonjour monsieur,
    avec ce code il ne se passe rien car « ModuleNotFoundError: No module named ‘pygame’  »
    Pourquoi ??? Est ce le fait que je suis sur idle 32-bit ? (je ne trouve pas le 64-bit chez moi)
    Merci d’avance pour votre réponse

Répondre à tom delpech Annuler la réponse.

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l’aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.