Menu
CoddyTech

走る

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 * delta

limit_length は、速度を max_speed 以下に保ちます。最後のフレームからの経過秒数である delta を掛けることで、画面の速さにかかわらず速度を一定に保ちます。

challenge icon

チャレンジ

簡単
  1. car.gdで、_physics_process内のpassを上記の行に置き換えます。
  2. 最後に、運転中に排気口を光らせます:$Exhaust.emitting = throttle > 0.0。
  3. 「プレイ」を押して、上キー(または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プレイグラウンド