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ę:

  1. 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.
  2. 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.
  3. 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.