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)))Tantangan
Sulit- Di
rock.gd, tambahkan_physics_process. Bergeraklah denganvelocity * deltadan tambahkan0.5 * deltakerotation. - Buat batu berpindah ke sisi seberang: jika melewati -30 atau 670 pada
x, pindahkan sejauh 700 ke arah sebaliknya. Jika melewati -30 atau 390 paday, pindahkan sejauh 420. - Di
main.gd, tambahkanconst ROCK = preload("res://rock.tscn")dan fungsispawn_rock(where, velocity). Buat 4 batu di_readyseperti 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
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Proyek
1Proyek: Breakout
Pemukul BreakoutJaga Pemukul Tetap di Layar4Proyek: Penjelajah Ruang Bawah Tanah
Jelajahi Ruang Bawah TanahAmbil Kunci2Proyek: Penembak Asteroid
Putar PesawatNyalakan MesinLatihan sendiri: Playground Godot