Nawet najbardziej prymitywni wrogowie muszą się jakoś poruszać, więc zainspiruj się, jak poradzić sobie z kodowaniem wzorców ataków.

Jednym z kluczowych elementów świetnej gry wideo jest obecność wrogów. Niezależnie od tego, czy są to zombie, kosmici czy inni gracze, wrogowie mogą uczynić grę bardziej wymagającą i ekscytującą.

W PyGame możesz łatwo zaprogramować różne zachowania ruchu wroga, takie jak podążanie za graczem, poruszanie się losowo lub wybieranie określonych ścieżek.

Tworzenie prostej gry

Zacznij od stworzenia prostej gry, w której gracz będzie poruszał się poziomo i pionowo. Jeśli gracz dotknie wroga, gracz umrze.

Możesz znaleźć pełny kod w this Repozytorium GitHub.

Zacznij od zaimportowania niezbędnego modułu PyGame i zainicjowania go.

import pygame

pygame.init()

Następnie skonfiguruj ekran i utwórz gracza i obiekty wroga za pomocą pygame. prostokąt() funkcjonować.

# Ustaw ekran
ekran = pygame.display.set_mode((800, 600))

# Ustaw kolory
czarny = (0, 0, 0)
biały = (255, 255, 255)

# Ustaw prostokąt gracza i obiekt wroga

instagram viewer

gracz = pygame. prostokąt(350, 500, 50, 50)
wróg = pygame. prostokąt(350, 0, 50, 50)

Następnie utwórz pętlę gry, która będzie działać, dopóki gracz nie zderzy się z wrogiem lub nie wyjdzie z gry. Sprawdź również, czy zderzenie gracza z wrogiemi narysuj obiekty gry na ekranie.

# Skonfiguruj pętlę gry
bieganie = PRAWDA

chwila działanie:
Do wydarzenie W pygame.event.get():
Jeśli event.type == pygame. ZREZYGNOWAĆ:
bieganie = FAŁSZ

# Wypełnij ekran kolorem białym
ekran.wypełnienie (biały)

# Przesuń prostokąt gracza
klucze = pygame.key.get_pressed()

Jeśli klucze [gra. K_LEWO]:
gracz.x -= 5

Jeśli klucze [gra. K_PRAWO]:
gracz.x += 5

Jeśli klucze [gra. K_UP]:
gracz.y -= 5

Jeśli klucze [gra. K_DÓŁ]:
gracz.y += 5

# Sprawdź kolizję między graczem a wrogiem
Jeśli player.colliderect (wróg):
bieganie = FAŁSZ

# Narysuj prostokąt gracza i wrogi obiekt na ekranie
pygame.draw.rect (ekran, czarny, gracz)
pygame.draw.rect (ekran, czarny, wróg)

# Zaktualizuj ekran
pygame.display.update()

# Wyjdź z gry
pygame.quit()

Skieruj wrogów w stronę gracza

Aby przesunąć wroga w stronę gracza, musisz obliczyć odległość między nimi, co możesz zrobić, korzystając z twierdzenia Pitagorasa. Następnie możesz użyć tej odległości, aby określić prędkość i kierunek ruchu wroga w kierunku gracza.

Aby to zaimplementować, utwórz zmienną prędkości i użyj jej do zaktualizowania pozycji wroga względem gracza.

# Oblicz odległość między wrogiem a graczem
odległość_x = gracz.x - wróg.x
odległość_y = gracz.y - wróg.y
odległość = (odległość_x ** 2 + odległość_y ** 2) ** 0.5

# Przesuń wroga w kierunku gracza
prędkość = 2

Jeśli odległość!= 0:
wróg.x += prędkość * odległość_x / odległość
wróg.y += prędkość * odległość_y / odległość

Losuj ruch wroga na ekranie

Możesz także sprawić, by wróg poruszał się losowo na ekranie, aby uczynić grę bardziej wymagającą.

Aby to zrobić, wygeneruj losowy kierunek ruchu wroga za pomocą losowego modułu w Pythonie. Użyj wybór() funkcja wyboru losowego kierunku z listy kierunków, w których wróg może się poruszać. Następnie zaktualizuj pozycję wroga na podstawie wybranego kierunku.

import losowy

# Przesuń wroga losowo na ekranie
kierunek = losowy.wybór(['lewy', 'Prawidłowy', 'w górę', 'w dół'])

Jeśli kierunek == 'lewy':
wróg.x -= 5
Elif kierunek == 'Prawidłowy':
wróg.x += 5
Elif kierunek == 'w górę':
wróg.y -= 5
Elif kierunek == 'w dół':
wróg.y += 5

Ruch wroga oparty na bliskości

W niektórych grach wróg porusza się tylko wtedy, gdy gracz jest blisko niego. Możesz to osiągnąć, obliczając odległość między wrogiem a graczem.

Jeśli odległość jest mniejsza niż określona wartość, zmuś wroga do przesunięcia się w stronę gracza. To sprawia, że ​​gra jest bardziej strategiczna i zmusza gracza do większej ostrożności w swoich ruchach.

# Przesuń wroga w kierunku gracza, jeśli gracz jest blisko
prędkość = 2

Jeśli odległość < 300:
Jeśli odległość!= 0:
wróg.x += prędkość * odległość_x / odległość
wróg.y += prędkość * odległość_y / odległość

Wróg unika ataków gracza

Możesz także zmusić wroga do unikania ruchu gracza. Wróg będzie próbował ominąć gracza, poruszając się prostopadle do pozycji gracza.

Aby to osiągnąć, oblicz wektor jednostkowy w kierunku gracza, używając obliczonych wcześniej distance_x i distance_y. Następnie oblicz wektor prostopadły, aby przesunąć wroga prostopadle do wektora jednostkowego. Na koniec oblicz iloczyn skalarny wektora prostopadłego i wektora jednostkowego, aby określić kierunek ruchu wroga.

Aby to zaimplementować, dodaj poniższy fragment kodu po obliczeniu odległości.

prędkość = 2

Jeśli odległość < 400:
Jeśli odległość!= 0:
# Oblicz wektor jednostkowy w kierunku gracza
wektor_jednostki_x = odległość_x / odległość
jednostka_wektor_y = odległość_y / odległość

# Oblicz wektor prostopadły
prostopadły_wektor_x = -jednostka_wektor_y
prostopadły_wektor_y = jednostkowy_wektor_x

# Oblicz iloczyn skalarny wektora prostopadłego i wektora
# wektor jednostkowy
iloczyn_kropkowy = wektor_prostopadły_x * wektor_jednostek_x
+ wektor_prostopadły_y * wektor_jednostek_y

# Przesuń wroga prostopadle do wektora jednostek
Jeśli produkt_dot > 0:
wróg.x += prędkość * prostopadły_wektor_x
wróg.y += prędkość * prostopadły_wektor_y
w przeciwnym razie:
wróg.x -= prędkość * prostopadły_wektor_x
wróg.y -= prędkość * prostopadły_wektor_y

Dzięki tym modyfikacjom wróg będzie starał się unikać zbytniego zbliżania się do gracza. To sprawia, że ​​gra jest trudniejsza i przyjemniejsza do grania.

Dodawanie dodatkowych funkcji

Możesz także dodać więcej funkcji do swojej gry, aby uczynić ją trudniejszą. Na przykład możesz dodać wielu wrogów, którzy poruszają się losowo na ekranie, przeszkody, których gracz musi unikać podczas ruchu, ulepszenia zwiększające umiejętności gracza i tak dalej.

Możesz użyj modułu zegara, aby ustawić liczbę klatek na sekundę swojej gry i sprawić, by działała płynniej. Poniżej realizacja:

# Dodaj wielu wrogów, którzy poruszają się losowo na ekranie
wrogowie = []

Do I W zakres(5):
wróg = pygame. Prostokąt (random.randint(0, 750), losowo.randint(0, 550), 50,
50)

wrogowie.dołącz (wróg)

# Dodaj przeszkody, których gracz musi unikać
przeszkoda = gra. prostokąt(200, 250, 50, 50)

# Skonfiguruj pętlę gry
zegar = pygame.czas. Zegar()
bieganie = PRAWDA

chwila działanie:
Do wydarzenie W pygame.event.get():
Jeśli event.type == pygame. ZREZYGNOWAĆ:
bieganie = FAŁSZ

# Wypełnij ekran kolorem białym
ekran.wypełnienie (biały)

# Przesuń prostokąt gracza
klucze = pygame.key.get_pressed()

Jeśli klucze [gra. K_LEWO]:
gracz.x -= 5
Jeśli klucze [gra. K_PRAWO]:
gracz.x += 5
Jeśli klucze [gra. K_UP]:
gracz.y -= 5
Jeśli klucze [gra. K_DÓŁ]:
gracz.y += 5

# Przesuwaj wrogów losowo na ekranie
Do wróg W wrogowie:
kierunek = losowy.wybór(['lewy', 'Prawidłowy', 'w górę', 'w dół'])

Jeśli kierunek == 'lewy':
wróg.x -= 5
Elif kierunek == 'Prawidłowy':
wróg.x += 5
Elif kierunek == 'w górę':
wróg.y -= 5
Elif kierunek == 'w dół':
wróg.y += 5

# Sprawdź kolizję między graczem a wrogiem
Jeśli player.colliderect (wróg):
bieganie = FAŁSZ

# Narysuj prostokąt gracza, wrogie obiekty i przeszkodę
# ekran
pygame.draw.rect (ekran, czarny, gracz)

Do wróg W wrogowie:
pygame.draw.rect (ekran, czarny, wróg)

pygame.draw.rect (ekran, czarny, przeszkoda)

# Zaktualizuj ekran
pygame.display.update()

# Ustaw liczbę klatek na sekundę gry
zegar.tik(60)

# Wyjdź z gry
pygame.quit()

Zwiększ swoje wrażenia z gry dzięki wrogom

Dodając wrogów o unikalnych ruchach, zachowaniach i zdolnościach, możesz uczynić swoje gry bardziej wciągającymi i wymagającymi dla graczy. Gracze będą musieli opracować strategię i dostosować swoją rozgrywkę, aby pokonać różne rodzaje wrogów. Może to zwiększyć zaangażowanie, poprawić wartość powtórki i sprawić, że gracze będą wracać po więcej.