총알 발사하기
Coddy Godot 여정의 프로젝트 섹션에 포함된 레슨. 33개 중 13번째.
E 또는 Enter(action 키)를 누르면 총알이 발사됩니다. 총알은 장면인 bullet.tscn입니다. 총알 자체의 스크립트가 총알을 앞으로 날아가게 하고 0.8초 후 제거합니다. 우주선은 기수 부분에 총알을 하나 생성하고, 같은 방향을 향하게 한 다음 게임에 추가합니다:
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)총알을 우주선의 부모에 추가하세요. 자식은 부모와 함께 움직이고 회전하므로, 총알을 우주선에 추가하면 우주선과 함께 휘둘리게 됩니다.
is_action_just_pressed는 키를 누른 프레임에만 true입니다. 한 번 누를 때마다 총알 하나가 발사됩니다.
챌린지
중급const BULLET = preload("res://bullet.tscn")을 추가합니다.action키를 막 눌렀을 때 우주선의rotation과 같은 방향으로 우주선 앞쪽 18픽셀 위치에 총알을 만들고, 우주선의 부모 노드에 추가합니다.
직접 해보기
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
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
프로젝트의 모든 레슨
직접 연습해 보세요: Godot 플레이그라운드