走る
Coddyの「Godotゲーム:ネオン・サーキット」コースのレッスン 1/20。
このコースでは、1つのゲームを最初から最後まで作ります。各レッスンで取り上げるのは、上から見たネオンのレーシングゲームです。光るコースを3周して、ライバルの車3台と競争します。
このプロジェクトには、車の car.gd、ライバル用の rival.gd、レース用の race.gd の3つのスクリプトがあります。さらに、表には出てこないパーツが2つ用意されています。道路を描画し、その道路に関する情報を返すトラックと、シーンです。これらを変更する必要はありません。
今日は、車の運転方法を学びます。車は velocity を保持しています。これは、1秒ごとに移動するピクセル数と移動する方向を表します。車の向きである rotation を方向に変換します。
var forward := Vector2.RIGHT.rotated(rotation)上キーを押している間、速度はその方向に1秒あたり accel だけ増加します。Input.get_action_strength は、キーが押されている間は1.0、押されていないときは0.0です。
var throttle := Input.get_action_strength("move_up")
velocity += forward * throttle * accel * delta
velocity = velocity.limit_length(max_speed)
position += velocity * deltalimit_length は、速度を max_speed 以下に保ちます。最後のフレームからの経過秒数である delta を掛けることで、画面の速さにかかわらず速度を一定に保ちます。
チャレンジ
簡単car.gdで、_physics_process内のpassを上記の行に置き換えます。- 最後に、運転中に排気口を光らせます:
$Exhaust.emitting = throttle > 0.0。 - 「プレイ」を押して、上キー(またはW)を押し続けます。
自分で試してみよう
extends Node2D
@export var accel := 260.0
@export var max_speed := 200.0
var velocity := Vector2.ZERO
func _physics_process(delta: float) -> void:
pass # drive here
Godotゲーム:ネオン・サーキットのすべてのレッスン
自分で練習してみよう: Godotプレイグラウンド