›_ ebskola.lv
sākt stundu
Prog II · 2. tēma · 6 stundas - CharacterBody2D · Physics · Platformer

Kustība un // sadursmes

Apgūsti CharacterBody2D fizikas sistēmu, gravitāciju un lēkšanu. Tēma noslēdzas ar 2D platformas spēles izveidi C++ ar GDExtension.

6 stundas CharacterBody2D gravitācija · lēkšana projekts Platformer
CharacterBody2D gravitācija · lēkšana move_and_slide()
# 01 stundas

6 stundas - tēmas saturs

No process cikliem un Input apstrādes līdz platformas spēles projektam.

kursa pārskats
# 02 špikeris

CharacterBody2D špikeris

Ātrākā uzziņa par kustību, gravitāciju un sadursmēm Godot C++.

prog2_2/player.cpp
player.cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
// Gravitācija + lēkšana + kustība const float GRAVITY = 980.0f; const float SPEED = 200.0f; const float JUMP = 500.0f; void Player::_physics_process(double d) { Vector2 vel = get_velocity(); if (!is_on_floor()) vel.y += GRAVITY * d; // gravitācija if (is_on_floor() && jump_pressed()) vel.y = -JUMP; // lēkšana vel.x = get_input_dir() * SPEED; // kustība set_velocity(vel); move_and_slide(); // Godot risina sadursmes }
● C++ · Godot 4 UTF-8
Metode / konstanteNozīme
get_velocity() / set_velocity()Lasa / iestata kustības vektoru
move_and_slide()Kustas un apstrādā sadursmes automātiski
is_on_floor()True, ja stāv uz grīdas
is_on_wall()True, ja pieskaras sienai
vel.y += GRAVITY * deltaGravitācija - palielina Y ātrumu
vel.y = -JUMP_FORCELēkšana - negatīvs Y (uz augšu)
Input::get_singleton()->is_action_pressed()Pārbauda, vai darbība aktīva
move_and_slide(); // Godot apstrādā sadursmes automātiski // CharacterBody2D - platformas fizika C++ GDExtension