Table des matières:

Créez votre premier jeu de course : 10 étapes
Créez votre premier jeu de course : 10 étapes

Vidéo: Créez votre premier jeu de course : 10 étapes

Vidéo: Créez votre premier jeu de course : 10 étapes
Vidéo: Créer un jeu en python (1/10) - Première fenêtre 2024, Novembre
Anonim
Image
Image
Image
Image

Si vous avez fait du codage Python et que vous vouliez écrire un jeu, vous pouvez avoir à travers Pygame Zero.

Dans ce tutoriel, nous allons écrire un jeu de course simple.

Étape 1: La vue d'ensemble

Le module Pygame ajoute de nombreuses fonctions qui vous aident à écrire des jeux en Python.

Pygame Zero va encore plus loin en vous permettant de sauter le processus fastidieux de création de toutes ces boucles de jeu et de configuration de la structure de votre programme.

Pygame Zero est un excellent choix pour tous ceux qui souhaitent commencer à écrire des jeux informatiques sur Raspberry Pi ou n'importe quelle machine Linux.

Tu auras besoin:

  • Machine qui exécute le système d'exploitation Linux
  • Éditeur pour écrire un programme python
  • Clavier
  • Un peu d'imagination

Des dossiers:

github.com/AhmNouira/-Racing-Game

Étape 2: Prérequis

J'utiliserai d'abord mon ordinateur portable avec le système d'exploitation Ubuntu 18.04. Ensuite, nous exécuterons le jeu sur Raspberry Pi à l'étape 8.

Avant de poursuivre ce didacticiel, assurez-vous que vous êtes connecté en tant qu'utilisateur avec des privilèges sudo.

Installation de pip pour Python 3

Commencez par mettre à jour la liste des packages à l'aide de la commande suivante:

mise à jour sudo apt

Utilisez la commande suivante pour installer pip pour Python 3:

sudo apt installer python3-pip

vérifiez l'installation en vérifiant la version pip:

pip3 --version

Installation de Pygame Zero

pip3 installer pgzero --user

Cela installera également Pygame. Paquets Pygame précompilés

La première étape de votre parcours sera donc d'ouvrir Python 3 IDLE ou votre éditeur python préféré.

Étape 3: "Hello World" dans Pygame Zero

Par défaut, la fenêtre Pygame Zero s'ouvre à une taille de 800 pixels de large sur 600 pixels de haut. Vous pouvez personnaliser

la taille de votre fenêtre, vous pouvez définir deux variables prédéfinies, si vous incluez WIDTH = 700 HIGH = 800.

Pygame zero fournit des fonctions prédéfinies pour gérer la boucle de jeu normalement exécutée:

La fonction draw()

Nous pouvons écrire cette fonction dans notre programme de la même manière que nous définirions normalement une fonction en Python.

Pygame Zero suit les mêmes règles de formatage que Python, vous devrez donc veiller à indenter correctement votre code.

#!/usr/bin/python3 # définit l'interpréteur

import pgzrun # import pgzero module WIDTH = 700 # largeur de la fenêtre HEIGHT = 800 # hauteur de la fenêtre def draw(): # pygame zero draw function screen.fill((128, 128, 128)) # remplir l'écran avec RVB color screen.draw.text("Hello World!", (270, 320), # draw "Hello World!" color = (255, 255, 255), fontsize = 40) pgzrun.go()

Tout d'abord, vous devez enregistrer votre fichier programme et lui donner un nom.

Ensuite, ouvrez une fenêtre Terminal, accédez à l'emplacement de votre fichier et tapez:

./.py

Étape 4: Dessinez votre acteur

Dessiner votre acteur
Dessiner votre acteur

Maintenant que nous avons notre décor, nous pouvons créer nos acteurs, ce sont des objets dynamiques dans Pygame Zero.

On peut charger un Actor en tapant en haut du programme:

voiture = Acteur("voiture de course")

Dans Pygame Zero, nos images doivent être stockées dans un répertoire appelé images, à côté de notre fichier programme. Ainsi, notre acteur rechercherait un fichier image dans le dossier images appelé racecar.png. Il peut s'agir d'un fichier GIF ou JPG, mais il est recommandé que vos images soient des fichiers-p.webp

Vous pouvez définir sa position sur l'écran en tapant:

car.pos = 350, 560

Après cela, dans notre fonction draw(), nous pouvons taper

car.draw() # dessine notre voiture de course à sa position définie

Le programme complet sera comme ceci:

#!/usr/bin/python3

import pgzrun WIDTH = 700 # largeur de la fenêtre HEIGHT = 800 # hauteur de la fenêtre car = Actor("racecar") car.pos = 350, 560 def draw(): # pygame zero draw function screen.fill((128, 128, 128)) # remplir l'écran avec car.draw() pgzrun.go()

Testez votre programme pour vous assurer que cela fonctionne.

Étape 5: Contrôler l'acteur

Contrôler l'acteur
Contrôler l'acteur

Une fois que nous avons le dessin de notre voiture à l'écran, l'étape suivante consiste à permettre au joueur de la déplacer.

Nous pouvons le faire en appuyant sur des touches. Nous pouvons lire l'état de ces clés dans une autre fonction prédéfinie appelée update().

La fonction update()

Cette fonction est vérifiée en permanence pendant l'exécution du jeu.

Nous devons écrire du code pour détecter les pressions sur les touches fléchées et aussi pour faire quelque chose à ce sujet.

Nous allons donc ajouter cette fonction à notre programme

mise à jour def():

si clavier.gauche: voiture.x -=2 si clavier.droit: voiture.x +=2 si clavier.haut: voiture.y -=2 si clavier.bas: voiture.y +=2

Ces lignes de code déplaceront l'acteur de la voiture vers la gauche, la droite, l'avant et l'arrière.

Étape 6: Construire la piste

Construire la piste
Construire la piste

Maintenant que nous avons une voiture que nous pouvons diriger, nous avons besoin d'une piste pour qu'elle puisse rouler.

Nous allons construire notre piste à partir d'acteurs, une rangée à la fois. Nous devrons faire des listes pour garder une trace des acteurs que nous créons.

Nous devrons également configurer quelques variables supplémentaires pour la piste.

Créons ensuite une nouvelle fonction appelée makeTrack(), la fonction ajoutera une piste Actor à gauche et une à droite, toutes deux utilisant l'image bare-p.webp

trackLeft = # liste pour stocker les barrières gauches

trackRight = # liste pour stocker les barrières de droite trackCount = 0 # compte le nombre de barrières trackPosition = 350 trackWidth = 150 # largeur entre les barrières gauche et droite def makeTrack(): # fonction pour faire une barrière à gauche et à droite global trackCount, trackLeft, trackRight, trackPosition, trackWidth trackLeft.append(Actor("nu", pos = (trackPosition-trackWidth, 0))) trackRight.append(Actor("nu", pos = (trackPosition + trackWidth, 0))) trackCount +=1

La prochaine chose que nous devons faire est de déplacer les sections de piste le long de l'écran vers la voiture.

Écrivons une nouvelle fonction appelée updateTrack(), cette fonction met à jour l'endroit où les blocs de piste apparaîtront. Les morceaux de piste sont créés par des nombres aléatoires, donc chaque lecture est différente.

trackDriction = False

SPEED = 4 # définit la vitesse du jeu à partir de random import randint # importe la classe randint à partir du module aléatoire def updateTrack(): global trackCount, trackPosition, trackDirection, trackWidth, SPEED b = 0 while b 32: if trackDirection == False: trackPosition += 16 if trackDirection == True: trackPosition -= 16 if randint(0, 4) == 1: trackDirection = not trackDirection si trackPosition > 700 - trackWidth: trackDirection = True si trackPosition < trackWidth: trackDirection = False makeTrack() # crée une nouvelle piste en haut de l'écran

Veuillez vous référer au fichier zip ci-dessous nommé "RaceGameDemo".

Si nous exécutons notre code pour le moment, nous devrions voir une piste serpenter vers la voiture. Le seul problème est que nous pouvons déplacer la voiture au-dessus des barrières de la voie et nous voulons garder la voiture à l'intérieur avec une détection de collision.

Étape 7: Accident de voiture

Accident de voiture
Accident de voiture
Accident de voiture
Accident de voiture
Accident de voiture
Accident de voiture

Nous devons nous assurer que notre voiture ne touche pas la piste Acteurs.

nous pouvons également tester les collisions en utilisant la méthode colliderect() dans notre fonction updateTrack().

Dans ce jeu, nous aurons trois états différents pour le jeu stockés dans notre variable gameStatus:

  • gameStatus == 0 # le jeu est en cours d'exécution
  • gameStatus == 1 # accident de voiture
  • gameStatus == 2 # jeu terminé

Nous devrons changer notre fonction draw() et notre fonction update() pour répondre à la variable gameStatus.

La touche finale

Tout ce que nous devons faire maintenant est d'afficher quelque chose si gameStatus est défini sur 1 ou 2, par exemple nous devrions afficher un rouge

drapeau, si la voiture s'est écrasée. Nous pouvons le faire avec le code ci-dessous:

screen.blit("redflag", (230, 230))

Pour voir si la voiture a atteint l'arrivée, il faut compter combien de sections de piste ont été créées puis peut-être quand on arrive à 200, mettre gameStatus sur 2. Puis afficher le drapeau à damier:

screen.blit("finishflag", (230, 230))

Nous afficherons également du texte à l'écran comme le score actuel du match.

Jetez un œil à la liste complète des codes pour voir comment tout cela s'emboîte.

Étape 8: Exécutez le jeu sur Raspberry Pi

Exécutez le jeu sur Raspberry Pi
Exécutez le jeu sur Raspberry Pi
Exécutez le jeu sur Raspberry Pi
Exécutez le jeu sur Raspberry Pi

Sur Raspberry Pi, pgzero est installé par défaut depuis la sortie de Raspbian Jessie en septembre 2015.

Mettez simplement à jour votre Raspberry Pi en utilisant la commande:

sudo apt-get mise à jour

Accédez à l'emplacement de votre fichier et tapez dans le terminal.

pgzrun.py

Étape 9: avez-vous gagné ?

As-tu gagné?
As-tu gagné?

Vous pouvez rendre le jeu plus facile ou plus difficile en modifiant la variable trackWidth pour que la piste ait une largeur différente. Vous pouvez modifier la valeur de SPEED pour que la piste se déplace plus rapidement ou plus lentement.

Étape 10: Conclusion

Pygame Zero est un excellent choix pour tous ceux qui veulent commencer à écrire des jeux informatiques.

Si vous avez des questions, vous pouvez bien sûr laisser un commentaire. Pour en savoir plus sur mes œuvres, veuillez visiter ma chaîne:

monYouTube

mon Twitter

monLinkedin

Merci d'avoir lu cette instructable ^^ et bonne journée. À plus. Ahmed Nouira.

Conseillé: