Tembakkan Peluru
Termasuk bagian Proyek dalam perjalanan Godot di Coddy. Pelajaran 14 dari 36.
E atau Enter (tombol action) menembakkan peluru. Peluru adalah sebuah adegan, bullet.tscn. Skripnya sendiri menerbangkannya ke depan dan menghapusnya setelah 0.8 detik. Kapal membuat satu peluru di bagian depannya, mengarahkannya ke arah yang sama, lalu menambahkannya ke dalam game:
if Input.is_action_just_pressed("action"):
var bullet = BULLET.instantiate()
bullet.position = position + Vector2.UP.rotated(rotation) * 18
bullet.rotation = rotation
get_parent().add_child(bullet)Tambahkan peluru ke induk kapal. Objek anak bergerak dan berputar bersama induknya, jadi peluru yang berada di kapal akan ikut berayun bersamanya.
is_action_just_pressed bernilai true hanya pada frame saat tombol ditekan. Setiap tekanan menembakkan satu peluru.
Tantangan
SedangTembakkan peluru dengan E.
- Tambahkan
const BULLET = preload("res://bullet.tscn"). - Saat
actionbaru saja ditekan, buat peluru 18 piksel di depan kapal, denganrotationkapal. - Tambahkan peluru ke parent kapal dengan
get_parent().add_child(bullet).
Tekan tombol “Main” dan tekan E: peluru melesat dari bagian depan kapal. Lalu tekan tombol “Periksa”.
Coba sendiri
extends CharacterBody2D
const TURN_SPEED = 4.0
const THRUST = 300
func _physics_process(delta):
rotation += Input.get_axis("move_left", "move_right") * TURN_SPEED * delta
if Input.is_action_pressed("move_up"):
velocity += Vector2.UP.rotated(rotation) * THRUST * delta
$Flame.visible = Input.is_action_pressed("move_up")
position += velocity * delta
if position.x < 0:
position.x += 640
if position.x > 640:
position.x -= 640
if position.y < 0:
position.y += 360
if position.y > 360:
position.y -= 360
Semua pelajaran di Proyek
1Proyek: Breakout
Pemukul BreakoutJaga Pemukul Tetap di Layar4Proyek: Penjelajah Ruang Bawah Tanah
Jelajahi Ruang Bawah TanahAmbil KunciLatihan sendiri: Playground Godot