Wiele gier zawiera jakiegoś wroga do walki. Poznaj różne sposoby na dodanie – i udoskonalenie – walki wroga.
Wrogowie odgrywają kluczową rolę w tworzeniu gier ekscytujących i stanowiących wyzwanie dla graczy. Niezależnie od tego, czy tworzysz platformówkę 2D, strzelankę z widokiem z góry, czy grę fabularną, dodanie wrogów może znacznie poprawić wrażenia z gry.
Przyjazny dla użytkownika interfejs Godota i intuicyjny język skryptowy GDScript sprawiają, że proces ten jest wydajny i przyjemny.
Przygotowanie gry Godot
Zanim zagłębisz się w tworzenie wrogów, skonfiguruj podstawową strukturę swojej gry 2D silnik gry Godota.
Utwórz nowy projekt 2D w Godot. W scenie głównej utwórz nowy KinematicBody2D węzeł i nazwij go Gracz. Wewnątrz węzła odtwarzacza dodaj a KolizjaKształt2D o kształcie prostokąta, który będzie hitboxem gracza. Dodaj również A Krasnoludek node jako wizualna reprezentacja postaci gracza.
Kod użyty w tym artykule jest dostępny w this Repozytorium GitHub i jest darmowy do użytku na licencji MIT.
Dołącz następujący kod GDScript do pliku Gracz węzeł, aby umożliwić podstawowy ruch:
extends KinematicBody2D
const SPEED = 200
func _physics_process(delta):
var motion = Vector2.ZEROif Input.is_action_pressed("ui_right"):
motion.x += SPEEDif Input.is_action_pressed("ui_left"):
motion.x -= SPEEDif Input.is_action_pressed("ui_down"):
motion.y += SPEEDif Input.is_action_pressed("ui_up"):
motion.y -= SPEED
motion = move_and_slide(motion)
Za pomocą tego kodu gracz może poruszać się w lewo, w prawo, w górę iw dół za pomocą klawiszy strzałek lub klawiszy WASD.
Tworzenie prostego wroga
Teraz, gdy masz już skonfigurowaną postać gracza, możesz stworzyć prostego wroga.
Utwórz nową scenę i dodaj plik StaticBody2D węzeł o nazwie Wróg. Wewnątrz węzła Enemy dodaj a KolizjaKształt2D węzeł o kształcie koła, aby zdefiniować hitbox wroga. Dodaj również A Krasnoludek węzeł do wizualnego reprezentowania wroga.
Po skonfigurowaniu kolizji wróg będzie gotowy do interakcji z graczem i innymi elementami w twoim świecie gry.
Sprawienie, by wróg podążał za graczem
Tworzenie wrogów, którzy podążają za graczem, wprowadza do gry nowy poziom wyzwań.
Utwórz nową scenę dla następującego rodzaju wroga i dodaj KinematicBody2D węzeł o nazwie Podążaj za wrogiem z CollisionShape2D. Dołącz następujący kod GDScript do węzła FollowEnemy, aby podążał za graczem:
extends KinematicBody2D
const SPEED = 100
func _physics_process(delta):
var player = get_parent().get_node("Player")
var player_position = player.global_position
var enemy_position = global_position
var direction = player_position - enemy_position
direction = direction.normalized()
var motion = direction * SPEED * delta
move_and_collide(motion)
Teraz Podążaj za wrogiem przesunie się w kierunku pozycji gracza w każdej klatce.
Dodawanie pocisków wroga
Teraz możesz zmusić wroga do strzelania pociskami w kierunku gracza. Utwórz nową scenę i nazwij ją Bullet.tscn. Dodać KinematicBody2D węzeł do sceny. Dołącz Bullet.gd skrypt do węzła KinematicBody2D w scenie Bullet.tscn. Dodaj następujący kod, aby zdefiniować klasę Bullet:
extends KinematicBody2D
const BULLET_SPEED = 300
var bullet_direction = Vector2.ZEROfunc _physics_process(delta):
var motion = bullet_direction * BULLET_SPEED * delta
move_and_collide(motion)
func set_direction(direction):
bullet_direction = direction.normalized()
Teraz utwórz nowy węzeł dla wroga z kulami i nazwij go StrzelanieWróg. W węźle ShootingEnemy dodaj a KolizjaKształt2D węzeł o kształcie prostokąta jako hitbox.
Dołącz następujący kod GDScript do węzła ShootingEnemy, aby strzelał pociskami:
extends KinematicBody2D
const SPEED = 100
const SHOOT_DELAY = 1.5
var shoot_timer = SHOOT_DELAY# Import the Bullet scene
const BulletScene = preload("res://Bullet.tscn")func _physics_process(delta):
# Shooting logic
shoot_timer -= delta
if shoot_timer <= 0:
shoot_timer = SHOOT_DELAY
var bullet_instance = BulletScene.instance()
bullet_instance.global_position = global_position
bullet_instance.set_direction(direction)
get_parent().add_child(bullet_instance)
Wróg będzie teraz okresowo strzelał pociskami w kierunku pozycji gracza. Użyj trybu warunkowego Jeśli oświadczenie aby sprawdzić, czy shoot_timer jest mniejsze od 0. Jeśli tak, to strzelaj kulą.
Losowo poruszający się przeciwnik
Oprócz wrogów, którzy podążają za graczem lub strzelają do niego, losowo poruszający się wróg może wprowadzić element nieprzewidywalności i wyzwania do twojej gry. Stworzenie wroga z losowymi wzorami ruchu wymaga połączenia prostej logiki i generowania liczb losowych.
Zacznij od utworzenia nowej sceny i dodaj plik KinematicBody2D węzeł o nazwie Losowy wróg. Utwórz nowy skrypt o nazwie RandomEnemy.gd i dołącz go do węzła RandomEnemy. Skrypt będzie obsługiwał losową logikę ruchu.
extends KinematicBody2D
const MOVE_SPEED = 100
const MOVE_INTERVAL_MIN = 1.0
const MOVE_INTERVAL_MAX = 3.0var move_timer = 0.0
var move_interval = 0.0
var move_direction = Vector2.ZEROfunc _ready():
choose_new_direction()func choose_new_direction():
move_interval = rand_range(MOVE_INTERVAL_MIN, MOVE_INTERVAL_MAX)
move_timer = move_interval
move_direction = Vector2(randf(), randf()).normalized()func _physics_process(delta):
move_timer -= deltaif move_timer <= 0.0:
choose_new_direction()
var motion = move_direction * MOVE_SPEED * delta
move_and_collide(motion)
W tym dodatkowe funkcje
Istnieje wiele dodatkowych funkcji, które możesz dodać swoim wrogom, aby uatrakcyjnić rozgrywkę.
Bitwy z bossami
Bitwy z bossami to kulminacyjne momenty w twojej grze, zapewniające niezapomniane i wymagające starcia, które sprawdzają umiejętności i wytrwałość graczy. Wrogowie-bossowie są zwykle więksi i potężniejsi niż zwykli wrogowie, co wymaga od graczy zastosowania określonych strategii i taktyk, aby ich pokonać.
Dynamiczne pojawianie się wrogów
Zaimplementuj dynamiczny system odradzania, który dostosowuje spotkania wrogów na podstawie wyników gracza, lokalizacji lub wydarzeń w grze. Zapewnia to bardziej responsywną i spersonalizowaną rozgrywkę.
Adaptacja środowiskowa
Twórz wrogów, którzy potrafią dostosować się do otoczenia, takich jak wrogowie, którzy potrafią latać, pływać lub wspinać się po ścianach. Ta wszechstronność otwiera nowe możliwości rozgrywki i stawia przed graczami wyzwania w poruszaniu się po różnych terenach.
Słabości i odporności wroga
Przypisz wrogom określone słabości i odporności, zachęcając graczy do eksperymentowania z różnymi podejściami i taktykami. Niektórzy wrogowie mogą być podatni na określone ataki lub elementy, podczas gdy inni są odporni lub odporni.
Dostosowywanie wrogów i warianty zachowania
Dodaj poziom nieprzewidywalności, dając wrogom losowe warianty zachowania. Na przykład wróg może mieć różne wzorce ataków lub prędkości ruchu w różnych rozgrywkach, dzięki czemu rozgrywka jest świeża i powtarzalna.
Włączenie różnych tych dodatkowych funkcji może wzbogacić projekt wroga w twojej grze, sprawiając, że każde starcie będzie wyjątkowe i niezapomniane dla graczy.
Pamiętaj, że chociaż wprowadzanie nowych mechanik może być ekscytujące, kluczowe znaczenie ma zachowanie równowagi i spójności w ramach ogólnego projektu gry.
Najlepsze praktyki tworzenia wrogów
Tworząc wrogów w grze Godot, weź pod uwagę następujące najlepsze praktyki:
Przejrzysta komunikacja wizualna
Używaj charakterystycznych projektów wrogów, które wyróżniają się z otoczenia, aby łatwo było ich rozpoznać.
Rozważ użycie kodowania kolorami lub unikalnych sylwetek, aby rozróżnić typy wrogów. Upewnij się, że animacje i efekty wizualne wrogów wzmacniają ich zachowania i ataki.
Trudność równoważenia
Stopniowo wprowadzaj wrogów o coraz większej złożoności w miarę postępów gracza w grze. Testuj starcia z wrogami z graczami o różnych poziomach umiejętności, aby upewnić się, że wyzwania są odpowiednie dla wszystkich graczy. Unikaj nagłych skoków trudności, które mogą frustrować graczy.
Unikanie tanich ujęć
Zaprojektuj wrogów z atakami, których gracz może uniknąć lub zablokować, dając im szansę na reakcję. Używaj uczciwego hitboxa do ataków wrogów, unikając ataków, które uderzają poza ich wizualną reprezentację. Użyj znaków ostrzegawczych lub wskazówek, aby zasugerować niebezpieczne ataki.
Testowanie gry i iteracja
Regularnie testuj spotkania z wrogami podczas tworzenia, aby ocenić ich współczynnik zabawy i trudność. Zbieraj informacje zwrotne od graczy i wykorzystuj je do dostrajania zachowań, mocnych i słabych stron wrogów.
Efekty dźwiękowe
Efekty dźwiękowe odgrywają kluczową rolę w tworzeniu wciągającego i wciągającego środowiska gry. Kiedy wróg otrzymuje trafienie, dodaj odpowiednie efekty dźwiękowe wolne od praw autorskich dla wzmocnienia poczucia uderzenia i zaangażowania w walce.
Twoja gra może towarzyszyć każdemu uderzeniu lub uderzeniu wyraźnymi dźwiękami, które odpowiadają typowi ataku i charakterystyce wroga.
Sprawianie, by gry Godot były bardziej wciągające z wrogami
Wrogowie są podstawowym elementem wielu gier, dostarczając wyzwań, przeszkód i poczucia spełnienia po pokonaniu. Dodając różne typy wrogów o różnych zachowaniach, punktach zdrowia i mechanice strzelania, możesz stworzyć różnorodne i wciągające wrażenia z rozgrywki dla graczy.
Pamiętaj, aby zrównoważyć poziom trudności, oferować wizualne i dźwiękowe informacje zwrotne oraz dokładnie testować wrogów, aby zapewnić graczom przyjemne i satysfakcjonujące wrażenia z gry.