W tym samouczku dowiesz się, jak wyświetlać i aktualizować wyniki gier w Pygame, popularnej bibliotece Pythona do tworzenia gier. Na koniec będziesz w stanie stworzyć prostą grę w skoczki i wyświetlać wynik gracza na ekranie w miarę jego postępów. Gra śledzi wprowadzanie z klawiatury, dzięki czemu możesz przesuwać gracza w lewo iw prawo za pomocą klawiszy strzałek.
Tworzenie prostej gry
Zanim będziesz mógł wyświetlać i aktualizować wyniki w Pygame, musisz najpierw stworzyć grę, z którą będziesz pracować. W tym samouczku stworzysz prostą grę, w której gracz może poruszać się w lewo lub w prawo. Ale wcześniej powinieneś pip zainstalowany na twoim urządzeniu. Po zainstalowaniu pip uruchom poniższe polecenie, aby zainstalować moduł pygame:
pypeć zainstalować pygame
Aby rozpocząć, zaimportuj niezbędne moduły i skonfiguruj podstawową strukturę gry:
import pygame, sys
pygame.init()# Ustaw okno
ekran = pygame.display.set_mode((750, 450))# Ustaw zegar gry
zegar = pygame.czas. Zegar()# Skonfiguruj postać gracza
gracz = pygame. prostokąt(100, 200, 50, 50)# Ustaw przeszkodę
przeszkoda = gra. prostokąt(200, 200, 50, 50)# Skonfiguruj pętlę gry
chwilaPRAWDA:
# Obsługuj zdarzenia
Do wydarzenie W pygame.event.get():
Jeśli event.type == pygame. ZREZYGNOWAĆ:
pygame.quit()
sys.exit()Jeśli event.type == pygame. KLAWIATURA:
Jeśli event.key == pygame. K_LEWO:
gracz.x -= 10
Elif event.key == pygame. K_PRAWO:
gracz.x += 10
# Zaktualizuj stan gry
# Narysuj grę
ekran.wypełnienie((0, 0, 0))
pygame.draw.rect (ekran, (255, 0, 0), gracz)
pygame.draw.rect (ekran, (0, 255, 0), przeszkoda)
# Zaktualizuj wyświetlacz
pygame.display.flip()
# Ogranicz liczbę klatek na sekundę
zegar.tik(60)
Dzięki temu szkieletowemu kodowi można grać w podstawową grę. Naciśnij w lewo lub w prawo, aby przesunąć postać gracza, reprezentowaną przez czerwony kwadrat.
Wyświetlanie i aktualizowanie wyniku gry
Teraz, gdy masz już podstawową konfigurację gry, dodaj system punktacji i wyświetl wynik na ekranie.
Konfigurowanie Pygame do renderowania tekstu
Aby wyświetlić tekst w Pygame, musimy najpierw zaimportować niezbędne moduły i zainicjować moduł czcionek. Aby to zrobić, użyj następującego kodu u góry skryptu:
import pygame
import sys
import os
pygame.init()
pygame.font.init()
Moduł pygame.font umożliwia korzystanie z możliwości renderowania tekstu Pygame, a funkcja pygame.init() inicjuje moduł czcionek.
Tworzenie podstawowego systemu punktacji
Następnie utwórz podstawowy system punktacji dla swojej gry. W tym celu zadeklaruj i zainicjuj dwie zmienne: score i score_increment. Zmienna score będzie śledzić aktualny wynik gracza, a zmienna score_increment określi, o ile wynik powinien wzrosnąć za każdym razem, gdy gracz dotknie przeszkody.
Dodaj następujący kod na początku skryptu, poniżej importu:
wynik = 0
wynik_przyrost = 10
Następnie aktualizuj wynik w miarę postępów w grze. W pętli gry możesz sprawdzić, czy postać gracza zderza się z przeszkodą. Jeśli tak, zwiększ wynik o wartość określoną w zmiennej score_increment.
Zaktualizuj pętlę gry, aby zawierała następujący kod:
# Zaktualizuj stan gry
Jeśli player.colliderect (przeszkoda):
wynik += przyrost_punktacji
Ten kod sprawdza, czy postać gracza zderza się z przeszkodą. Jeśli tak, zwiększa wynik o określoną kwotę.
Wyświetlanie wyniku na ekranie za pomocą modułu czcionek
Teraz, gdy mamy już podstawowy system oceniania, wyświetlmy wynik na ekranie za pomocą modułu czcionek.
Najpierw skonfigurujmy obiekt czcionki, dodając następujący kod na początku pętli gry:
# Skonfiguruj obiekt czcionki
czcionka = pygame.font. Czcionka(Nic, 36)
Ten kod tworzy obiekt czcionki o rozmiarze 36 pikseli i bez określonej rodziny czcionek. Czcionkę i rozmiar czcionki można dostosować, określając inny plik i rozmiar czcionki w funkcji Font().
Następnie narysujmy wynik na ekranie. Dodaj następujący kod do pętli gry po zaktualizowaniu stanu gry i wypełnieniu ekranu:
# Narysuj wynik na ekranie
wynik_tekst = czcionka. renderowanie (Wynik f': {wynik}', PRAWDA, (255, 255, 255))
screen.blit (tekst_wyniku, (10, 10))
Ten kod używa metody render() obiektu font do utworzenia powierzchni tekstowej zawierającej partyturę, a następnie kładzie (rysuje) powierzchnię tekstową na ekranie w pozycji (10, 10).
Dostosowywanie wyglądu tekstu partytury
Na koniec dostosuj wygląd tekstu partytury, wybierając czcionkę i rozmiar czcionki oraz zmieniając kolor tekstu.
Aby wybrać określoną czcionkę i rozmiar czcionki, przekaż plik i rozmiar czcionki jako argumenty do funkcji Font():
czcionka = pygame.font. Czcionka(„arial.ttf”, 48)
Możesz łatwo pobierz różne pliki czcionek z Internetu. Po pobraniu wystarczy umieścić plik czcionki w katalogu głównym katalogu roboczego.
Aby zmienić kolor tekstu, przekaż krotkę koloru jako trzeci argument metody render() :
wynik_tekst = czcionka. renderowanie (Wynik f': {wynik}', PRAWDA, (0, 255, 0))
I to wszystko! Dzięki tym zmianom powinieneś mieć teraz w pełni funkcjonalny system punktacji gry, który wyświetla wynik na ekranie i aktualizuje go w miarę postępów gracza w grze. Możesz dodatkowo dostosować wygląd tekstu partytury, eksperymentując z różnymi rodzinami czcionek, rozmiarami i kolorami.
Śledzenie wyników w grze
Poniżej znajduje się pełny działający kod, możesz również znaleźć kod na ten temat GitHub repo.
import pygame
import ospygame.init()
pygame.font.init()wynik = 0
wynik_przyrost = 10# Ustaw okno
ekran = pygame.display.set_mode((750, 450))# Ustaw zegar gry
zegar = pygame.czas. Zegar()# Skonfiguruj postać gracza
gracz = pygame. prostokąt(100, 200, 50, 50)# Ustaw przeszkodę
przeszkoda = gra. prostokąt(200, 200, 50, 50)# Skonfiguruj pętlę gry
chwilaPRAWDA:
czcionka = pygame.font. Czcionka(Nic, 36)
# Obsługuj zdarzenia
Do wydarzenie W pygame.event.get():
Jeśli event.type == pygame. ZREZYGNOWAĆ:
pygame.quit()
sys.exit()
Jeśli event.type == pygame. KLAWIATURA:
Jeśli event.key == pygame. K_LEWO:
gracz.x -= 10
Elif event.key == pygame. K_PRAWO:
gracz.x += 10
# Zaktualizuj stan gry
Jeśli player.colliderect (przeszkoda):
wynik += przyrost_punktacji
# Narysuj grę
ekran.wypełnienie((0, 0, 0))
pygame.draw.rect (ekran, (255, 0, 0), gracz)
pygame.draw.rect (ekran, (0, 255, 0), przeszkoda)
# Narysuj wynik na ekranie
wynik_tekst = czcionka. renderowanie (Wynik f': {wynik}', PRAWDA, (255, 255, 255))
screen.blit (tekst_wyniku, (10, 10))
# Zaktualizuj wyświetlacz
pygame.display.flip()
# Ogranicz liczbę klatek na sekundę
zegar.tik(60)
Ten kod tworzy okno o rozmiarze 750x450 pikseli, postać gracza i przeszkodę. Wykorzystuje pętlę gry do obsługi zdarzeń, aktualizowania stanu i rysowania gry na ekranie. Zawiera również system punktacji, który zwiększa wynik o dziesięć punktów za każdym razem, gdy postać gracza zderza się z przeszkodą, a czcionka i kod renderujący tekst wyświetlają wynik na ekranie.
W sekcji obsługi zdarzeń kod zawiera również funkcję poruszania postacią gracza w lewo i w prawo za pomocą klawiszy strzałek.
Pętla gry zawiera kod aktualizujący wyświetlacz i ograniczający liczbę klatek na sekundę do 60 klatek na sekundę, zapewniając płynne działanie gry.
Ogólnie rzecz biorąc, ten kod stanowi podstawowy przykład wyświetlania i aktualizowania wyników gier w Pygame i może być dalej dostosowywany i rozszerzany w celu tworzenia bardziej złożonych i wciągających gier.
Twórz różne gry za pomocą Pygame
Pygame to potężna i łatwa w użyciu biblioteka do tworzenia gier w Pythonie. Dzięki bogatemu zestawowi funkcji i możliwości możesz tworzyć szeroką gamę gier, od prostych skoczków i platformówek po bardziej złożone i wciągające gry.
Niezależnie od tego, czy jesteś początkującym, czy doświadczonym twórcą gier, Pygame to doskonały wybór do tworzenia wciągających i zabawnych gier.