Spisu treści:
- Krok 1: Ogólny przegląd
- Krok 2: Warunki wstępne
- Krok 3: „Hello World” w Pygame Zero
- Krok 4: Rysowanie aktora
- Krok 5: Kontroluj aktora
- Krok 6: Budowanie toru
- Krok 7: Wypadek samochodowy
- Krok 8: Uruchom grę na Raspberry Pi
- Krok 9: Czy wygrałeś?
- Krok 10: Wniosek
Wideo: Stwórz swoją pierwszą grę wyścigową: 10 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
Jeśli już trochę kodowałeś w Pythonie i chciałeś napisać grę, którą możesz mieć w Pygame Zero.
W tym samouczku napiszemy prostą grę wyścigową.
Krok 1: Ogólny przegląd
Moduł Pygame dodaje wiele funkcji, które pomagają pisać gry w Pythonie.
Pygame Zero idzie o krok dalej, pozwalając Ci pominąć uciążliwy proces tworzenia wszystkich pętli gry i konfigurowania struktury programu.
Pygame Zero to świetny wybór dla każdego, kto chce zacząć pisać gry komputerowe na Raspberry Pi lub dowolnej maszynie z systemem Linux.
Będziesz potrzebował:
- Maszyna z systemem operacyjnym Linux
- Edytor do pisania programu w Pythonie
- Klawiatura
- Trochę wyobraźni
Pliki:
github.com/AhmNouira/-Racing-Game
Krok 2: Warunki wstępne
Najpierw użyję laptopa z systemem Ubuntu 18.04 OS. Następnie uruchomimy grę na Raspberry Pi w kroku 8.
Przed kontynuowaniem tego samouczka upewnij się, że jesteś zalogowany jako użytkownik z uprawnieniami sudo.
Instalowanie pip dla Pythona 3
Zacznij od aktualizacji listy pakietów za pomocą następującego polecenia:
aktualizacja sudo apt
Użyj następującego polecenia, aby zainstalować pip dla Pythona 3:
sudo apt zainstaluj python3-pip
zweryfikuj instalację, sprawdzając wersję pip:
pip3 --wersja
Instalowanie Pygame Zero
pip3 zainstaluj pgzero --user
Spowoduje to również zainstalowanie Pygame. Wstępnie skompilowane pakiety Pygame
Tak więc pierwszym krokiem w twojej podróży będzie otwarcie Pythona 3 IDLE lub twojego ulubionego edytora Pythona.
Krok 3: „Hello World” w Pygame Zero
Domyślnie okno Pygame Zero otwiera się w rozmiarze 800 pikseli szerokości i 600 pikseli wysokości. Możesz dostosować
rozmiar twojego okna, możesz ustawić dwie wstępnie zdefiniowane zmienne, jeśli uwzględnisz WIDTH = 700 HIGH = 800.
Pygame zero zapewnia predefiniowane funkcje do obsługi pętli gry, którą normalnie wykonuje:
Funkcja draw()
Możemy zapisać tę funkcję w naszym programie w taki sam sposób, w jaki normalnie zdefiniowalibyśmy funkcję w Pythonie.
Pygame Zero stosuje te same zasady formatowania, co Python, więc musisz zadbać o prawidłowe wcięcie kodu.
#!/usr/bin/python3 # ustaw interpreter
import pgzrun # import pgzero module WIDTH = 700 # szerokość okna HEIGHT = 800 # wysokość okna def draw(): # funkcja rysowania zerowego pygame screen.fill((128, 128, 128)) # wypełnij ekran RGB color screen.draw.text("Witaj świecie!", (270, 320), # draw "Witaj świecie!" color = (255, 255, 255), fontsize = 40) pgzrun.go()
Przede wszystkim musisz zapisać plik programu i nadać mu nazwę.
Następnie otwórz okno terminala, przejdź do lokalizacji pliku i wpisz:
./.py
Krok 4: Rysowanie aktora
Teraz, gdy mamy już przygotowaną scenę, możemy tworzyć naszych aktorów, są to dynamiczne obiekty w Pygame Zero.
Aktora możemy załadować, wpisując w górnej części programu:
samochód = Aktor("samochód wyścigowy")
W Pygame Zero nasze obrazy muszą być przechowywane w katalogu o nazwie images, obok naszego pliku programu. Tak więc nasz aktor szukałby pliku obrazu w folderze obrazów o nazwie racecar.png. Może to być plik-g.webp
Możesz ustawić jego pozycję na ekranie, wpisując:
samochód.pos = 350, 560
Następnie w naszej funkcji draw() możemy wpisać
car.draw() # narysuj nasz samochód wyścigowy w określonej pozycji
Pełny program będzie wyglądał tak:
#!/usr/bin/python3
import pgzrun SZEROKOŚĆ = 700 # szerokość okna WYSOKOŚĆ = 800 # wysokość okna samochód = Actor("samochód wyścigowy") car.pos = 350, 560 def draw(): # funkcja rysowania zerowego pygame screen.fill((128, 128, 128)) # wypełnij ekran car.draw() pgzrun.go()
Przetestuj swój program, aby upewnić się, że działa.
Krok 5: Kontroluj aktora
Gdy już mamy na ekranie rysunek naszego samochodu, kolejnym etapem jest umożliwienie graczowi jego poruszania.
Możemy to zrobić za pomocą naciśnięć klawiszy. Możemy odczytać stan tych kluczy wewnątrz innej predefiniowanej funkcji o nazwie update().
Funkcja aktualizacji ()
Ta funkcja jest stale sprawdzana podczas działania gry.
Musimy napisać trochę kodu, aby wykryć naciśnięcia klawiszy strzałek, a także coś z tym zrobić.
Dodamy więc tę funkcję do naszego programu
aktualizacja definicji():
if keyboard.left: car.x -=2 if keyboard.right: car.x +=2 if keyboard.up: car.y -=2 if keyboard.down: car.y +=2
Te wiersze kodu przesuną aktora samochodu w lewo, w prawo, do przodu i do tyłu.
Krok 6: Budowanie toru
Teraz, gdy mamy samochód, którym możemy kierować, potrzebujemy toru, po którym będzie się poruszał.
Zbudujemy nasz tor z Aktorów, po jednym rzędzie na raz. Będziemy musieli stworzyć kilka list, aby śledzić tworzonych przez nas aktorów.
Będziemy też musieli ustawić kilka dodatkowych zmiennych dla ścieżki.
Następnie stwórzmy nową funkcję o nazwie makeTrack(). Funkcja doda jednego aktora ścieżki po lewej i jednego po prawej, używając obrazu bare-p.webp
trackLeft = # lista do przechowywania lewych barries
trackRight = # lista do przechowywania prawych zapór trackCount = 0 # zlicza liczbę zapór trackPosition = 350 trackWidth = 150 # szerokość między lewą i prawą zaporą def makeTrack(): # funkcja tworząca jedną zaporę po lewej i prawej stronie global trackCount, trackLeft, trackRight, trackPosition, trackWidth trackLeft.append(Actor("goły", poz = (trackPosition-trackWidth, 0)))) trackRight.append(Actor("goły", poz = (trackPosition + trackWidth, 0))) liczba utworów +=1
Następną rzeczą, którą musimy zrobić, jest przesunięcie odcinków toru po ekranie w kierunku samochodu.
Napiszmy nową funkcję o nazwie updateTrack(). Ta funkcja aktualizuje miejsca, w których pojawią się bloki toru. Fragmenty toru są tworzone przez losowe liczby, więc każde odtworzenie jest inne.
trackDriction = Fałsz
SPEED = 4 # ustawia prędkość gry z random import randint # import klasy randint z random module def updateTrack(): global trackCount, trackPosition, trackDirection, trackWidth, SPEED b = 0 while b
Proszę zapoznać się z poniższym plikiem zip o nazwie „RaceGameDemo”.
Jeśli uruchomimy nasz kod w tej chwili, powinniśmy zobaczyć tor wijący się w kierunku samochodu. Jedyny problem polega na tym, że możemy przejechać samochodem przez barierki toru i chcemy utrzymać samochód w nich z pewnym wykrywaniem kolizji.
Krok 7: Wypadek samochodowy
Musimy upewnić się, że nasz samochód nie dotyka toru Aktorzy.
równie dobrze możemy testować kolizje za pomocą metody colliderect() w naszej funkcji updateTrack().
W tej grze będziemy mieć trzy różne stany gry przechowywane w naszej zmiennej gameStatus:
- gameStatus == 0 # gra jest uruchomiona
- stan gry == 1 # wypadek samochodowy
- stan gry == 2 # gra zakończona
Będziemy musieli zmienić naszą funkcję draw() i funkcję update(), aby odpowiadały na zmienną gameStatus.
Ostatnie poprawki
Wszystko, co musimy teraz zrobić, to wyświetlić coś, jeśli stan gry jest ustawiony na 1 lub 2, na przykład powinniśmy wyświetlić czerwony
flaga, jeśli samochód się rozbił. Możemy to zrobić za pomocą poniższego kodu:
screen.blit("czerwona flaga", (230, 230))
Aby sprawdzić, czy samochód dotarł do mety, powinniśmy policzyć, ile odcinków toru zostało utworzonych, a następnie być może, gdy dojdziemy do 200, ustawić gameStatus na 2. Następnie wyświetl flagę z szachownicą:
screen.blit("flaga zakończenia", (230, 230))
Na ekranie wyświetlimy również tekst, na przykład aktualny wynik gry.
Spójrz na pełną listę kodu, aby zobaczyć, jak to wszystko do siebie pasuje.
Krok 8: Uruchom grę na Raspberry Pi
Na Raspberry Pi pgzero jest instalowane domyślnie od czasu wydania Raspbian Jessie we wrześniu 2015 roku.
Po prostu zaktualizuj swoje Raspberry Pi za pomocą polecenia:
aktualizacja sudo apt-get
Przejdź do lokalizacji pliku i wpisz Terminal.
pgzrun.py
Krok 9: Czy wygrałeś?
Możesz uczynić grę łatwiejszą lub trudniejszą, zmieniając zmienną trackWidth, aby ścieżka miała inną szerokość. Możesz zmienić wartość SPEED, aby ścieżka poruszała się szybciej lub wolniej.
Krok 10: Wniosek
Pygame Zero to świetny wybór dla każdego, kto chce zacząć pisać gry komputerowe.
Jeśli masz jakieś pytania oczywiście możesz zostawić komentarz. Aby zobaczyć więcej o moich pracach odwiedź mój kanał:
myYouTube
mój Twitter
myLinkedin
Dzięki za przeczytanie tej instrukcji ^^ i miłego dnia. Do zobaczenia. Ahmed Nouira.
Zalecana:
Stwórz własną grę 1D Pong: 5 kroków (ze zdjęciami)
Stwórz własną grę ponga 1D: W tym projekcie pokażę, jak połączyłem płytę MDF z przyciskami brzęczyka, diodami LED i Arduino Nano, aby stworzyć grę w ponga 1D, w którą gra się naprawdę fajnie. Po drodze pokażę Ci, jak stworzyć układ elektroniczny i jak różni
Wdróż swoją pierwszą aplikację z listą rzeczy do zrobienia: 8 kroków
Wdróż swoją pierwszą aplikację z listą rzeczy do zrobienia: Jeśli jesteś zupełnie nowy w kodowaniu lub masz trochę programowania w tle, możesz się zastanawiać, od czego zacząć naukę. Musisz nauczyć się, jak, co, gdzie kodować, a gdy kod będzie gotowy, jak go wdrożyć, aby wszyscy mogli to zobaczyć. Dobra wiadomość jest
Jak zrobić swoją pierwszą płytkę drukowaną: 5 kroków
Jak zrobić swoją pierwszą płytkę drukowaną: Cześć, tutaj dowiemy się, jak wykonać pierwszą płytkę drukowaną
Cyfrowe Szachy - Śledź swoją grę w szachy online: 5 kroków
Cyfrowe szachy – śledź swoją grę w szachy online: Od najmłodszych lat grałem dużo w szachy, a ponieważ w sieci jest mnóstwo stron internetowych, na których można grać w szachy z komputerami lub żywymi przeciwnikami, ani razu nie znalazłem strony internetowej który śledzi twoją partię szachów, w którą faktycznie grasz
Stwórz grę 3D na komputerze z Coppercube: 5 kroków
Stwórz grę 3D na komputerze z Coppercube: Zrobiłem grę w coppercube! W tym dowiesz się, jak zrobić grę w miedzianej kostce lub innym oprogramowaniu. Spotkasz mnie również w innych instruktażach! gra komputerowa z miedzianą kostką