Πίνακας περιεχομένων:

Δημιουργήστε το πρώτο σας αγωνιστικό παιχνίδι: 10 βήματα
Δημιουργήστε το πρώτο σας αγωνιστικό παιχνίδι: 10 βήματα

Βίντεο: Δημιουργήστε το πρώτο σας αγωνιστικό παιχνίδι: 10 βήματα

Βίντεο: Δημιουργήστε το πρώτο σας αγωνιστικό παιχνίδι: 10 βήματα
Βίντεο: ΟΤΙ ΠΙΟ ΚΡΙΝΤΖ ΥΠΑΡΧΕΙ? 2024, Νοέμβριος
Anonim
Image
Image
Εικόνα
Εικόνα

Εάν έχετε κάνει κάποια κωδικοποίηση Python και θέλετε να γράψετε ένα παιχνίδι που μπορεί να έχετε στο Pygame Zero.

Σε αυτό το σεμινάριο θα γράψουμε ένα απλό παιχνίδι αγώνων.

Βήμα 1: Η ευρεία επισκόπηση

Η ενότητα Pygame προσθέτει πολλές λειτουργίες που σας βοηθούν να γράψετε παιχνίδια σε Python.

Το Pygame Zero πηγαίνει ένα βήμα παραπέρα για να σας αφήσει να παραλείψετε τη δύσκολη διαδικασία δημιουργίας όλων αυτών των βρόχων παιχνιδιών και τη ρύθμιση της δομής του προγράμματος σας.

Το Pygame Zero είναι μια εξαιρετική επιλογή για όποιον θέλει να ξεκινήσει να γράφει παιχνίδια στον υπολογιστή στο Raspberry Pi ή σε οποιοδήποτε μηχάνημα Linux.

Θα χρειαστείς:

  • Μηχανή που τρέχει λειτουργικό σύστημα Linux
  • Επεξεργαστής για τη σύνταξη προγράμματος python
  • Πληκτρολόγιο
  • Λίγη φαντασία

Αρχεία:

github.com/AhmNouira/-Racing-Game

Βήμα 2: Προαπαιτούμενα

Αρχικά θα χρησιμοποιήσω τον φορητό υπολογιστή μου με λειτουργικό σύστημα Ubuntu 18.04. Στη συνέχεια, θα τρέξουμε το παιχνίδι στο Raspberry Pi στο βήμα 8.

Πριν συνεχίσετε με αυτό το σεμινάριο, βεβαιωθείτε ότι έχετε συνδεθεί ως χρήστης με δικαιώματα sudo.

Εγκατάσταση pip για Python 3

Ξεκινήστε ενημερώνοντας τη λίστα πακέτων χρησιμοποιώντας την ακόλουθη εντολή:

sudo apt ενημέρωση

Χρησιμοποιήστε την ακόλουθη εντολή για να εγκαταστήσετε το pip για την Python 3:

sudo apt εγκατάσταση python3-pip

επαληθεύστε την εγκατάσταση ελέγχοντας την έκδοση pip:

pip3 -ανατροπή

Εγκατάσταση του Pygame Zero

pip3 install pgzero --user

Αυτό θα εγκαταστήσει επίσης το Pygame. Προ-μεταγλωττισμένα πακέτα Pygame

Έτσι, το πρώτο βήμα στο ταξίδι σας θα είναι να ανοίξετε το Python 3 IDLE ή τον αγαπημένο σας επεξεργαστή python.

Βήμα 3: "Hello World" στο Pygame Zero

Από προεπιλογή, το παράθυρο Pygame Zero ανοίγει σε μέγεθος 800 pixel πλάτος και 600 pixel ύψος. Μπορείτε να προσαρμόσετε

το μέγεθος του παραθύρου σας, υπάρχουν δύο προδιαγεγραμμένες μεταβλητές που μπορείτε να ορίσετε, εάν συμπεριλάβετε WIDTH = 700 HIGH = 800.

Το Pygame zero παρέχει προκαθορισμένες λειτουργίες για τον χειρισμό του βρόχου παιχνιδιού που εκτελεί κανονικά:

Η συνάρτηση draw ()

Μπορούμε να γράψουμε αυτήν τη συνάρτηση στο πρόγραμμά μας όπως ακριβώς θα ορίζαμε μια συνάρτηση στην Python.

Το Pygame Zero ακολουθεί τους ίδιους κανόνες μορφοποίησης με το Python, οπότε θα πρέπει να φροντίσετε να κάνετε σωστή εσοχή στον κώδικά σας.

#!/usr/bin/python3 # ορίστε τον διερμηνέα

import pgzrun # import pgzero module WIDTH = 700 # width of the window HEIGHT = 800 # height of the window def draw (): # pygame μηδενική κλήρωση οθόνης. συμπλήρωση ((128, 128, 128)) # γεμίστε την οθόνη με RGB έγχρωμη οθόνη.draw.text ("Hello World!", (270, 320), # draw "Hello World!" color = (255, 255, 255), fontsize = 40) pgzrun.go ()

Πρώτα απ 'όλα πρέπει να αποθηκεύσετε το αρχείο προγράμματος και να του δώσετε ένα όνομα.

Στη συνέχεια, ανοίξτε ένα παράθυρο τερματικού, μεταβείτε στη θέση του αρχείου σας και πληκτρολογήστε:

./.py

Βήμα 4: Σχεδιάζοντας τον ηθοποιό σας

Σχεδιάζοντας τον ηθοποιό σας
Σχεδιάζοντας τον ηθοποιό σας

Τώρα που έχουμε το σκηνικό μας, μπορούμε να δημιουργήσουμε τους Ηθοποιούς μας, είναι δυναμικά αντικείμενα στο Pygame Zero.

Μπορούμε να φορτώσουμε έναν Ηθοποιό πληκτρολογώντας στην κορυφή του προγράμματος:

car = Actor ("racecar")

Στο Pygame Zero οι εικόνες μας πρέπει να αποθηκευτούν σε έναν κατάλογο που ονομάζεται εικόνες, δίπλα στο αρχείο του προγράμματος μας. Έτσι, ο Ηθοποιός μας θα έψαχνε ένα αρχείο εικόνας στο φάκελο εικόνων που ονομάζεται racecar.png. Θα μπορούσε να είναι ένα αρχείο GIF ή ένα JPG, αλλά συνιστάται οι εικόνες σας να είναι αρχεία-p.webp

Μπορείτε να ορίσετε τη θέση του στην οθόνη πληκτρολογώντας:

car.pos = 350, 560

Στη συνέχεια, στη συνάρτηση draw () μπορούμε να πληκτρολογήσουμε

car.draw () # σύρετε το αγωνιστικό μας αυτοκίνητο στην καθορισμένη θέση του

Το πλήρες πρόγραμμα θα έχει ως εξής:

#!/usr/bin/python3

εισαγωγή pgzrun ΠΛΑΤΟΣ = 700 # πλάτος παραθύρου ΥIGHΟΣ = 800 # ύψος αυτοκινήτου παραθύρου = Ηθοποιός ("racecar") car.pos = 350, 560 def draw (): # pygame μηδενική κλήρωση οθόνης. συμπληρώστε ((128, 128, 128)) # γεμίστε την οθόνη με car.draw () pgzrun.go ()

Δοκιμάστε το πρόγραμμά σας για να βεβαιωθείτε ότι λειτουργεί.

Βήμα 5: Ελέγξτε τον Ηθοποιό

Ελέγξτε τον Ηθοποιό
Ελέγξτε τον Ηθοποιό

Μόλις έχουμε το αυτοκίνητό μας να σχεδιάζει στην οθόνη, το επόμενο στάδιο είναι να επιτρέψουμε στον παίκτη να το μετακινήσει.

Μπορούμε να το κάνουμε αυτό με το πάτημα πλήκτρων. Μπορούμε να διαβάσουμε την κατάσταση αυτών των κλειδιών μέσα σε μια άλλη προκαθορισμένη συνάρτηση που ονομάζεται ενημέρωση ().

Η συνάρτηση ενημέρωσης ()

Αυτή η λειτουργία ελέγχεται συνεχώς ενώ το παιχνίδι εκτελείται.

Πρέπει να γράψουμε κάποιο κώδικα για να ανιχνεύσουμε πατήματα πλήκτρων των πλήκτρων βέλους και επίσης να κάνουμε κάτι γι 'αυτό.

Θα προσθέσουμε λοιπόν αυτή τη συνάρτηση στο πρόγραμμά μας

def ενημέρωση ():

if keyboard.left: car.x -= 2 if keyboard.right: car.x += 2 if keyboard.up: car.y -= 2 if keyboard.down: car.y += 2

Αυτές οι γραμμές κώδικα θα μετακινήσουν το αυτοκίνητο Actor αριστερά, δεξιά, εμπρός και πίσω.

Βήμα 6: Χτίζοντας το κομμάτι

Χτίζοντας την πίστα
Χτίζοντας την πίστα

Τώρα που έχουμε ένα αυτοκίνητο στο οποίο μπορούμε να κατευθύνουμε, χρειαζόμαστε μια πίστα για να το οδηγήσει.

Θα φτιάξουμε το κομμάτι μας από τους Ηθοποιούς, μία σειρά τη φορά. Θα χρειαστεί να φτιάξουμε λίστες για να παρακολουθούμε τους Ηθοποιούς που δημιουργούμε.

Θα χρειαστεί επίσης να ορίσουμε μερικές ακόμη μεταβλητές για το κομμάτι.

Στη συνέχεια, ας δημιουργήσουμε μια νέα συνάρτηση που ονομάζεται makeTrack (), Η συνάρτηση θα προσθέσει ένα κομμάτι Actor στα αριστερά και ένα στα δεξιά, και τα δύο χρησιμοποιώντας την εικόνα bare-p.webp

trackLeft = # λίστα για αποθήκευση αριστερών φραγμών

trackRight = # λίστα για αποθήκευση δεξιών φραγμών trackCount = 0 # μετράτε τον αριθμό των φραγμών trackPosition = 350 trackWidth = 150 # πλάτος μεταξύ αριστερού και δεξιού φραγμού def makeTrack (): # συνάρτηση για να φτιάξετε ένα barrie στο αριστερό και το δεξί παγκόσμιο trackCount, trackLeft, trackRight, trackPosition, trackWidth trackLeft.append (Ηθοποιός ("γυμνός", pos = (trackPosition-trackWidth, 0))) trackRight.append (Ηθοποιός ("γυμνός", pos = (trackPosition + trackWidth, 0))) trackCount += 1

Το επόμενο πράγμα που πρέπει να κάνουμε είναι να μετακινήσουμε τα τμήματα της πίστας κάτω από την οθόνη προς το αυτοκίνητο.

Ας γράψουμε μια νέα συνάρτηση που ονομάζεται updateTrack (), Αυτή η συνάρτηση ενημερώνεται όπου θα εμφανίζονται τα μπλοκ κομματιών. Τα κομμάτια του κομματιού δημιουργούνται από τυχαίους αριθμούς, έτσι ώστε κάθε αναπαραγωγή να είναι διαφορετική.

trackDriction = Λάθος

SPEED = 4 # ορίζει την ταχύτητα του παιχνιδιού από τυχαία εισαγωγή randint # εισαγωγή της κλάσης randint από τυχαία ενότητα def updateTrack (): καθολικό trackCount, trackPosition, trackDirection, trackWidth, SPEED b = 0 ενώ b 32: if trackDirection == False: trackPosition += 16 if trackDirection == True: trackPosition - = 16 if randint (0, 4) == 1: trackDirection = not trackDirection if trackPosition> 700 - trackWidth: trackDirection = True αν trackPosition < trackWidth: trackDirection = False makeTrack () # δημιουργήστε ένα νέο κομμάτι στο επάνω μέρος της οθόνης

Ανατρέξτε στο αρχείο zip παρακάτω με το όνομα "RaceGameDemo".

Αν τρέξουμε τον κωδικό μας αυτή τη στιγμή, θα πρέπει να δούμε μια πίστα να σκαρφαλώνει προς το αυτοκίνητο. Το μόνο πρόβλημα είναι ότι μπορούμε να μετακινήσουμε το αυτοκίνητο πάνω από τα φράγματα της πίστας και θέλουμε να κρατήσουμε το αυτοκίνητο μέσα σε αυτά με κάποια ανίχνευση σύγκρουσης.

Βήμα 7: Συντριβή αυτοκινήτου

Τρακάρισμα
Τρακάρισμα
Τρακάρισμα
Τρακάρισμα
Τρακάρισμα
Τρακάρισμα

Πρέπει να βεβαιωθούμε ότι το αυτοκίνητό μας δεν αγγίζει την πίστα Ηθοποιοί.

μπορούμε επίσης να δοκιμάσουμε για συγκρούσεις χρησιμοποιώντας τη μέθοδο colliderect () στη συνάρτηση updateTrack ().

Σε αυτό το παιχνίδι θα έχουμε τρεις διαφορετικές καταστάσεις στο παιχνίδι αποθηκευμένες στο μεταβλητό μας παιχνίδι

  • gameStatus == 0 # παιχνίδι εκτελείται
  • gameStatus == 1 # τροχαίο ατύχημα
  • gameStatus == 2 # παιχνίδι τελείωσε

Θα χρειαστεί να αλλάξουμε τη συνάρτηση draw () και τη συνάρτηση update () για να ανταποκριθούμε στη μεταβλητή gameStatus.

Τελευταίες πινελιές

Το μόνο που χρειάζεται να κάνουμε τώρα είναι να εμφανίσουμε κάτι εάν το gameStatus έχει οριστεί σε 1 ή 2, για παράδειγμα θα πρέπει να εμφανίσουμε ένα κόκκινο

σημαία, αν το αυτοκίνητο έπεσε. Μπορούμε να το κάνουμε με τον παρακάτω κώδικα:

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

Για να δούμε αν το αυτοκίνητο έχει φτάσει στον τερματισμό, θα πρέπει να μετρήσουμε πόσες ενότητες πίστας έχουν δημιουργηθεί και, στη συνέχεια, ίσως όταν φτάσουμε στο 200, να ορίσουμε το gameStatus στο 2. Στη συνέχεια, εμφανίστε την καρό σημαία:

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

Θα εμφανίσουμε επίσης κάποιο κείμενο στην οθόνη όπως το τρέχον σκορ του παιχνιδιού.

Ρίξτε μια ματιά στην πλήρη λίστα κωδικών για να δείτε πώς ταιριάζει όλο αυτό.

Βήμα 8: Εκτελέστε το παιχνίδι στο Raspberry Pi

Εκτελέστε το παιχνίδι στο Raspberry Pi
Εκτελέστε το παιχνίδι στο Raspberry Pi
Εκτελέστε το παιχνίδι στο Raspberry Pi
Εκτελέστε το παιχνίδι στο Raspberry Pi

Το Raspberry Pi pgzero έχει εγκατασταθεί από προεπιλογή από την κυκλοφορία του Raspbian Jessie τον Σεπτέμβριο του 2015.

Απλώς ενημερώστε το Raspberry Pi χρησιμοποιώντας την εντολή:

sudo apt-get ενημέρωση

Μεταβείτε στη θέση του αρχείου σας και πληκτρολογήστε το τερματικό.

pgzrun.py

Βήμα 9: Κερδίσατε;

Κέρδισες?
Κέρδισες?

Μπορείτε να κάνετε το παιχνίδι πιο εύκολο ή πιο δύσκολο αλλάζοντας τη μεταβλητή trackWidth για να κάνετε το κομμάτι διαφορετικό πλάτος. Μπορείτε να αλλάξετε την τιμή του SPEED για να κάνετε το κομμάτι να κινηθεί γρηγορότερα ή πιο αργά.

Βήμα 10: Συμπέρασμα

Το Pygame Zero είναι μια εξαιρετική επιλογή για όποιον θέλει να ξεκινήσει να γράφει παιχνίδια στον υπολογιστή.

Εάν έχετε οποιαδήποτε ερώτηση φυσικά, μπορείτε να αφήσετε ένα σχόλιο. Για να δείτε περισσότερα σχετικά με τα έργα μου, επισκεφτείτε το κανάλι μου:

myYouTube

myTwitter

myLinkedin

Ευχαριστώ που διαβάσατε αυτό το διδακτικό ^^ και να έχετε μια όμορφη μέρα. Τα λέμε. Αχμέτ Νουίρα.

Συνιστάται: