Ruch postaci w Godot dla początkujących

in polish •  5 days ago 

Poruszanie postacią to jedna z podstawowych mechanik w grach. W Godot Engine możesz to łatwo zaimplementować, korzystając z węzłów takich jak KinematicBody2D (dla gier 2D) lub CharacterBody3D (dla gier 3D). Poniżej znajdziesz szczegółowe instrukcje, jak dodać ruch postaci w obu przypadkach.


Ruch postaci w 2D

1. Przygotowanie sceny

  1. Dodaj węzeł KinematicBody2D:
    • Kliknij prawym przyciskiem myszy w drzewie sceny i wybierz „Dodaj węzeł”.
    • Wpisz KinematicBody2D i dodaj go.
  2. Dodaj dziecko węzła:
    • Sprite2D: Wyświetla grafikę postaci (np. bohatera).
    • CollisionShape2D: Definiuje obszar kolizji postaci.
      • Po dodaniu ustaw kształt kolizji (np. prostokąt).

2. Dodanie skryptu

Dodaj skrypt do węzła KinematicBody2D. Kliknij prawym przyciskiem myszy na węzeł, wybierz „Dodaj Skrypt”, a następnie wklej poniższy kod:

extends KinematicBody2D

@export var speed = 200  # Prędkość poruszania się postaci
var velocity = Vector2.ZERO

func _physics_process(delta):
    velocity = Vector2.ZERO  # Zerowanie prędkości przed każdym ruchem

    # Odczytywanie wejścia użytkownika
    if Input.is_action_pressed("ui_right"):
        velocity.x += 1
    if Input.is_action_pressed("ui_left"):
        velocity.x -= 1
    if Input.is_action_pressed("ui_down"):
        velocity.y += 1
    if Input.is_action_pressed("ui_up"):
        velocity.y -= 1

    # Normalizacja kierunku i zastosowanie prędkości
    velocity = velocity.normalized() * speed
    move_and_slide(velocity)


3. Konfiguracja wejścia (Input)

  1. Przejdź do „Project Settings” > „Input Map”.
  2. Dodaj następujące akcje:
    • ui_right (np. przypisz klawisz strzałki w prawo lub D).
    • ui_left (np. strzałka w lewo lub A).
    • ui_up (np. strzałka w górę lub W).
    • ui_down (np. strzałka w dół lub S).

Postać powinna teraz poruszać się zgodnie z wpisanymi klawiszami.


Ruch postaci w 3D

1. Przygotowanie sceny

  1. Dodaj węzeł CharacterBody3D:
    • Kliknij prawym przyciskiem myszy w drzewie sceny i dodaj węzeł CharacterBody3D.
  2. Dodaj dziecko węzła:
    • MeshInstance3D: Wyświetla model 3D postaci (np. sześcian jako placeholder).
    • CollisionShape3D: Definiuje kształt kolizji postaci (np. kapsuła lub pudełko).

2. Dodanie skryptu

Dodaj skrypt do węzła CharacterBody3D i wklej poniższy kod:

extends CharacterBody3D

@export var speed = 5.0  # Prędkość poruszania się postaci
@export var jump_velocity = 10.0  # Siła skoku

func _physics_process(delta):
    # Poruszanie się w poziomie
    var direction = Vector3.ZERO

    if Input.is_action_pressed("ui_right"):
        direction.x += 1
    if Input.is_action_pressed("ui_left"):
        direction.x -= 1
    if Input.is_action_pressed("ui_down"):
        direction.z += 1
    if Input.is_action_pressed("ui_up"):
        direction.z -= 1

    # Normalizacja i zastosowanie prędkości
    if direction != Vector3.ZERO:
        direction = direction.normalized() * speed

    velocity.x = direction.x
    velocity.z = direction.z

    # Grawitacja
    if not is_on_floor():
        velocity.y += get_gravity() * delta

    # Skok
    if Input.is_action_just_pressed("ui_accept") and is_on_floor():
        velocity.y = jump_velocity

    # Zastosowanie ruchu
    move_and_slide()


3. Konfiguracja wejścia (Input)

  1. Przejdź do „Project Settings” > „Input Map”.
  2. Dodaj akcje:
    • ui_right, ui_left, ui_up, ui_down (jak w przykładzie 2D).
    • ui_accept (np. przypisz klawisz Space do skoku).

Dodatkowe porady

  • Dodanie animacji: Możesz dodać AnimationPlayer, aby postać miała animacje biegu czy skoku.
  • Śledzenie postaci przez kamerę:
    • Dodaj węzeł Camera2D (dla 2D) lub Camera3D (dla 3D) jako dziecko postaci, aby kamera podążała za nią.
  • Kolizje: Dopasuj kształt kolizji (CollisionShape2D lub CollisionShape3D) do rozmiaru swojej postaci.

Teraz Twoja postać może poruszać się po scenie! Jeśli chcesz rozbudować mechanikę, np. dodać skok, sprint lub bardziej zaawansowaną fizykę, chętnie Ci pomogę. 😊

Published using WordPress Blurt Publisher from https://godot.com.pl.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE BLURT!