Python

Nous allons créer un mini pong pour un joueur

Un mini pong

Le contexte : Une balle qui se déplace dans une fenêtre, qui doit rebondir sur un mur et un joueur qui doit faire rebondir la balle avec un "paddle" que l'on manipule à la souris...

MéthodeÉtape 1 : la fenêtre

Vous devez commencer à avoir l'habitude...

1
def setup():
2
    size(500,300)
3
4
def draw():
5
     background(255,160,122)

MéthodeÉtape 2 : La balle

On crée les variables nécessaires pour l'affichage de la balle. Puis une fonction afficheBalle() pour son affichage

1
bx=100
2
by=150
3
r=15
4
def setup():
5
    size(500,300)
6
7
def draw():
8
     background(255,160,122)
9
     afficherBalle()
10
11
def afficherBalle():
12
    fill(254,255,18)
13
    ellipse(bx,by,2*r,2*r)
14

Faisons bouger cette balle, avec la fonction bougerBalle() ( on aura créé deux variables vx=4 et vy=5 au préalable

1
def bougerBalle():
2
    global bx,by
3
    bx=bx+vx
4
    by=by+vy

Gérons les collisions de la balle avec les murs avec la fonction collisionBords()

On a déjà vu comment faire (pour rappel voilà le code...)

1
def collisionBord():
2
    global vx,vy
3
    if bx>width-r:
4
        vx=-vx
5
    if by>height-r or by<15:
6
        vy=-vy

MéthodeÉtape 3 : Le paddle

Ce sera un rectangle aux coordonnées ( 10 , mouseY) de dimensions avec la couleur fill(186,85,211) que l'on affichera avec la fonction afficherPaddle()

je vous laisse faire...

Pour la collision de la balle et du paddle voilà la fonction : collisionPaddle()

1
def collisionPaddle():
2
    global vx
3
    if bx-r+vx<20 and by<mouseY+60 and by>mouseY:
4
        vx=-vx

Le principe est : si on rentre dans le paddle alors il y a collision, de plus on teste la collision légèrement avant qu'elle n'arrive...

ComplémentEt après....

Il vous reste à voir en vous aidant des références, comment compter des points, comment les faire afficher et pour les plus courageux, d'envisager un second joueur qui manipulerai un second paddle avec le clavier...

PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimer Stéphan Van Zuijlen Licence de documentation libre GNURéalisé avec Scenari (nouvelle fenêtre)