Tworzenie strzelanki z widokiem z góry w Godot
W tym samouczku dowiesz się, jak stworzyć strzelankę z widokiem z góry, korzystając z Godota, potężnego silnika gier typu open source. Strzelanki z góry na dół zazwyczaj polegają na kontrolowaniu postaci, która porusza się i strzela z perspektywy z góry, a jej celem jest pokonanie wrogów i osiągnięcie celów.
Konfigurowanie projektu
Zacznij od stworzenia nowego projektu 2D w Godocie. Po utworzeniu projektu skonfiguruj główną scenę:
- Utwórz gracza:
- Dodaj węzeł
KinematicBody2D
dla swojej postaci gracza. - Skonfiguruj duszka dla gracza i skonfiguruj kształty kolizji, aby uzyskać dokładną interakcję z wrogami i otoczeniem.
- Dodaj węzeł
- Dodaj wrogów:
- Twórz postacie wroga, używając węzłów
KinematicBody2D
lub innych odpowiednich węzłów. - Projektuj skrypty zachowań AI, aby kontrolować ruch wroga, ataki i wykrywanie gracza.
- Twórz postacie wroga, używając węzłów
- Zaimplementuj mechanizm strzelania:
- Pisz skrypty obsługujące strzelanie do graczy.
- Użyj zdarzeń wejściowych, aby wykryć kliknięcia myszą lub naciśnięcia klawiszy w celu wystrzelenia pocisków w kierunku kursora myszy.
Przykład kodu: Ruch gracza i strzelanie
extends KinematicBody2D
const MOVE_SPEED = 200
const SHOOT_SPEED = 400
var bullet_scene = preload("res://Bullet.tscn")
func _process(delta):
# Player Movement
var input_vector = Vector2.ZERO
input_vector.x = Input.get_action_strength("move_right") - Input.get_action_strength("move_left")
input_vector.y = Input.get_action_strength("move_down") - Input.get_action_strength("move_up")
input_vector = input_vector.normalized() * MOVE_SPEED * delta
move_and_slide(input_vector)
# Player Shooting
if Input.is_action_just_pressed("shoot"):
var bullet_instance = bullet_scene.instance()
var direction = (get_global_mouse_position() - global_position).normalized()
bullet_instance.direction = direction
bullet_instance.position = global_position
get_parent().add_child(bullet_instance)
bullet_instance.linear_velocity = direction * SHOOT_SPEED
Wyjaśnienie kodu
- MOVE_SPEED: Stała określająca prędkość ruchu gracza.
- SHOOT_SPEED: Stała określająca prędkość pocisków wystrzeliwanych przez gracza.
- bullet_scene: Odniesienie do sceny zawierającej obiekt-pocisk.
- _process(delta): Funkcja uruchamiająca każdą klatkę w celu aktualizacji ruchu gracza i strzałów.
- Ruch gracza: Oblicza ruch na podstawie danych wejściowych z klawiszy ruchu („move_right”, "move_left", "move_down", "move_up") za pomocą
move_and_slide()
. - Strzelanie przez gracza: Wykrywa sygnał wejściowy do strzelania („strzelaj”) i tworzy obiekt-pocisk w pozycji gracza, ustawiając jego kierunek w stronę kursora myszy i stosując prędkość, aby symulować strzelanie.
Ulepszanie rozgrywki
Rozbuduj swoją grę, dodając wrogą sztuczną inteligencję, ulepszenia i bardziej złożony projekt poziomów. Implementuj efekty dźwiękowe, efekty wizualne i elementy interfejsu użytkownika, aby stworzyć dopracowaną rozgrywkę.
Wniosek
Dzięki temu przykładowi kodu zacząłeś budować podstawy strzelanki z widokiem z góry w Godot. Eksperymentuj z różnymi mechanikami i funkcjami, aby stworzyć swoją unikalną grę i odkrywaj bardziej zaawansowane funkcjonalności Godota w celu dalszego rozwoju.