Spisu treści:

Stwórz swoją pierwszą grę wyścigową: 10 kroków
Stwórz swoją pierwszą grę wyścigową: 10 kroków

Wideo: Stwórz swoją pierwszą grę wyścigową: 10 kroków

Wideo: Stwórz swoją pierwszą grę wyścigową: 10 kroków
Wideo: Jak nauczyłem się robić gry w Unity 2024, Lipiec
Anonim
Image
Image
Obraz
Obraz

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

Rysowanie aktora
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

Kontroluj aktora
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

Budowanie toru
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 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 if trackPosition < trackWidth: trackDirection = False makeTrack() # utwórz nową ścieżkę na górze ekranu

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

Wypadek samochodowy
Wypadek samochodowy
Wypadek samochodowy
Wypadek samochodowy
Wypadek samochodowy
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

Uruchom grę na Raspberry Pi
Uruchom grę na Raspberry Pi
Uruchom grę na Raspberry Pi
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ś?

Wygrałeś?
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: