Nous allons maintenant travailler avec une multitude de smileys.

Pour gérer tous ces smileys, nous allons devoir utiliser la programmation orientée objet (il n'est pas envisageable de créer tous les smileys "à la main"), si ce sujet vous est totalement inconnu, allez lire les activités qui se trouvent ici.

À faire vous-même 5.1

Saisissez, analysez et testez ce code


#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pygame,sys
from pygame.locals import *
from random import *
#nous créons une classe Smiley
class Smiley():
    def __init__(self):
        #la position de départ du smiley est aléatoire
        self.posX=760*random()+20
        self.posY=560*random()+20
        #o correpond à l'image du smiley
        self.o=pygame.image.load("asset/smiley.png").convert_alpha()
#fin de la définition de la classe Smiley
#la fonction creationSmiley permet de créer plusieurs smileys grâce à un boucle for
def creationSmiley():
    for i in range (0,nbrSmiley):
        s=Smiley() #création d'une instance (objet) de la classe Smiley
        tab.append(s) #l'instance qui vient d'être créée est "rangée" dans la liste tab
#début fonction animation
def animation():
    fen.fill(0)
    for ele in tab: #la boucle for permet de parcourir toute la liste tab.
        fen.blit(ele.o,(ele.posX-20,ele.posY-20))
    pygame.display.flip()
#fin fonction animation
tab=[]
nbrSmiley=20
pygame.init()
clock=pygame.time.Clock()
fen = pygame.display.set_mode((800, 600))
creationSmiley() #on appele la fonction creationSmiley afin de créer nos smileys.
while True :
    animation()
    clock.tick(60)
    for event in pygame.event.get():
        if event.type==QUIT:
            pygame.quit()
            sys.exit()
			

À faire vous-même 5.2

En repartant du code proposé dans le "À faire vous-même 5.1", écrivez un programme qui permettra d'afficher 10 smileys. Ces 10 smileys devront se déplacer à vitesse constante et en ligne droite (la position de départ, la vitesse et la direction de départ devront être aléatoires). Les smileys devront rebondir (de façon réaliste) sur les bords.


À faire vous-même 5.3

En vous basant sur ce qui a été fait au "À faire vous-même 5.2", créez un programme qui, en cas de collision, fera disparaitre les 2 smileys concernés par la collision. Quand tous les smileys auront disparu, le programme devra s'arrêter.