Menu
CoddyTech

Batu yang Melayang

Termasuk bagian Proyek dalam perjalanan Godot di Coddy. Pelajaran 14 dari 33.

Berikutnya adalah batu. Batu adalah sebuah scene, rock.tscn, dan rock.gd menggerakkannya. Batu melayang dengan velocity-nya, berputar perlahan, dan muncul kembali seperti kapal. Ukuran batu besar, jadi batu muncul kembali pada -30 dan 670, bukan 0 dan 640. Dengan begitu, batu meninggalkan layar sepenuhnya sebelum muncul kembali.

main.gd membuat batu dengan sebuah fungsi, jadi semua proses pemunculannya ada di satu tempat:

func spawn_rock(where, velocity):
	var rock = ROCK.instantiate()
	rock.position = where
	rock.velocity = velocity
	add_child(rock)

Di _ready, panggil fungsi itu empat kali dengan perulangan. Setiap batu mendapat posisi acak di tepi atas dan velocity acak:

spawn_rock(Vector2(randf_range(0, 640), 0), Vector2(randf_range(-90, 90), randf_range(40, 90)))
challenge icon

Tantangan

Sulit
  1. Di rock.gd, tambahkan _physics_process. Bergeraklah dengan velocity * delta dan tambahkan 0.5 * delta ke rotation.
  2. Buat batu berpindah ke sisi seberang: jika melewati -30 atau 670 pada x, pindahkan sejauh 700 ke arah sebaliknya. Jika melewati -30 atau 390 pada y, pindahkan sejauh 420.
  3. Di main.gd, tambahkan const ROCK = preload("res://rock.tscn") dan fungsi spawn_rock(where, velocity). Buat 4 batu di _ready seperti yang ditunjukkan.

Coba sendiri

extends Area2D

var velocity = Vector2.ZERO

# Bursts into dust where the rock is. Call it when the rock breaks.
func burst():
	var dust = CPUParticles2D.new()
	dust.position = position
	dust.one_shot = true
	dust.explosiveness = 1.0
	dust.amount = 20
	dust.lifetime = 0.7
	dust.spread = 180.0
	dust.gravity = Vector2.ZERO
	dust.initial_velocity_min = 30.0
	dust.initial_velocity_max = 120.0 * scale.x
	dust.scale_amount_min = 2.0
	dust.scale_amount_max = 5.0
	dust.color = Color(0.75, 0.82, 0.95)
	dust.finished.connect(dust.queue_free)
	get_parent().add_child(dust)
	dust.emitting = true
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Proyek

Latihan sendiri: Playground Godot