Nous avons mis en application ce que nous avons appris sur les variables. Jouons un peu avec les graphismes et les mécaniques de jeu !
Notre raquette et notre balle ont une hauteur et une largeur, en pixels. Ces valeurs sont définies dans des variables. De plus, elles sont toutes blanches... Nous aimerions rendre le jeu un peu plus simple. Essayez de rendre la raquette et la balle un peu plus grandes, et d'afficher les deux dans des couleurs différentes !
display.setColor(color.RED)
Vous êtes libre de choisir les tailles et couleurs de votre choix, mais voici un exemple de ce que vous pouvez faire !
Il s'agit d'une solution possible, la votre est peut-être différente !
from gamebuino_meta import begin, waitForUpdate, display, color, buttons, collide
# Taille, vitesse et position initiale de la balle :
ball_size = 3
ball_x_speed = 1
ball_y_speed = 1
ball_x_position = 20
ball_y_position = 20
# Taille initiale de la raquette du joueur :
player_height = 12
player_width = 3
player_speed = 2
# Position initiale de la raquette :
player_x_position = 10
player_y_position = 30
# Score
score = 0
total = 0
begin()
while True:
waitForUpdate()
display.clear()
# Si on presse les boutons UP ou DOWN, nous déplaçons la raquette vers le haut, ou vers le bas :
if buttons.repeat(buttons.UP, 0):
player_y_position = player_y_position - player_speed
if buttons.repeat(buttons.DOWN, 0):
player_y_position = player_y_position + player_speed
# Nous déplaçons la balle
ball_x_position = ball_x_position + ball_x_speed
ball_y_position = ball_y_position + ball_y_speed
# Vérification si la balle entre en collision avec le haut, bas ou droite de l'écran
# Si c'est le cas, nous inversons sa direction
if ball_y_position <= 0:
ball_y_speed = -ball_y_speed
if ball_y_position >= 64 - ball_size:
ball_y_speed = -ball_y_speed
if ball_x_position + ball_size >= 80:
ball_x_speed = -ball_x_speed
# Nous testons s'il y a collision entre la balle et la raquette du joueur
if ( (ball_x_position <= player_x_position + player_width)
and (ball_y_position + ball_size >= player_y_position)
and (ball_y_position <= player_y_position + player_height)
):
ball_x_speed = -ball_x_speed
score = score + 1
total = total + 1
# Vérifier si la balle est sortie de l'écran
if ball_x_position <= 0:
score = 0 # Nous remettons le score à 0
ball_x_speed = -ball_x_speed
# Empêcher la raquette de sortir de l'écran
if player_y_position <= 0:
player_y_position = 0
if player_y_position >= 64 - player_height:
player_y_position = 64 - player_height
# Affichage de la balle
display.setColor(color.PINK)
display.fillRect(ball_x_position, ball_y_position, ball_size, ball_size)
# Affichage de la raquette du joueur
display.setColor(color.BROWN)
display.fillRect(player_x_position, player_y_position, player_width, player_height)
# Affichage du score
display.setColor(color.GREEN)
display.print("Mon score est ")
display.print(score)
display.print("\n")
display.setColor(color.BLUE)
display.print("Total : ")
display.print(total)
En modifiant la valeur de ball_size
à 6, notre balle fait désormais 6 pixels de haut, et 6 pixels de large. Pour la raquette, nous avons modifié player_height
et player_width
. C'est tout ! Enfin, nous avons changé la couleur juste avant l'affichage de nos éléments : la raquette en marron (color.BROWN
), et la balle en rose (color.PINK
). Le jeu est désormais un peu plus simple !
Trop simple, même ? Et si nous faisions l'inverse : rendre le jeu plus difficile ?
Quelques pistes :
Nous ne vous donnons pas d'exemple ici, mais nous sommes certains que vous serez créatifs !
Nous sommes arrivés à la fin de ce workshop, et nous espérons qu'il vous aura donné envie d'aller un peu plus loin dans l'apprentissage du Python. D'autres workshops vont arriver prochainement, mais d'ici là, vous avez assez de connaissances pour pouvoir vous amuser et pratiquer de votre côté !
Maintenant que vous avez fait vos premiers pas, vous êtes sûrement impatient de vous lancer dans une vraie création et de pouvoir y jouer sur votre Gamebuino où et quand vous le souhaitez !
Toutefois, le développement de l'environnement Python sur Gamebuino est très récent et certaines choses ne sont pas encore possible à l'heure d'aujourd'hui.
Lorsque vous sauvez le fichier code.py sur le volume CIRCUITPY de votre Gamebuino, celui est interprété et exécuté directement sur la console. Mais à l'heure actuelle il n'est pas encore possible de sauver ce fichier code.py sur la carte SD et de le monter dans CircuitPython sans que vous soyez raccordé à un ordinateur pour effectuer manuellement l'opération. Il y a encore des choses à développer avant que cela ne soit possible.
Pour le moment la seule façon d'avoir une création persistante exécutable depuis le menu de la Gamebuino est d'utiliser l'environnement Arduino/C++ de la Gamebuino.