<플레어>
- Flare 씬 생성
- sprite 노드 생성 후 이름을 flare로 변경
- flare 첫번째 이미지를 지정해줌
- 애니메이션 노드 추가 후 이름을 anim으로 변경, fade_out 애니메이션 추가
- 0초에서 flare 스프라이트의 Opacity 1로 하여 키를 추가 (Modulate의 Opacity속성을 255)
- 0.1초에서 Opacity 0으로 하여 키를 추가 (Modulate의 Opacity속성을 0)
- length를 0.1초로 변경
- flare sprite노드에 스크립트 추가(flare.gd)
<flare.gd>
시그널 "finished"은 "animation_finished"로 변경
<레이저>
- Laser 씬 생성(enemy용, player용 공통), Area2D 노드를 추가 후 laser로 변경
- Sprite, CollisionShape2D, VisibilityNotifier2D 노드를 추가하고, 아래와 같이 이름을 변경해준다.
- 세부 설정은 추후 상속 노드에서 할 예정이므로 더이상의 설정은 진행하지 않는다.
- laser노드에 스크립트 추가
extends Area2D
export var velocity = Vector2()
const scn_flare = preload("res://scenes/flare.tscn")
func _ready():
set_process(true)
create_flare()
yield(get_node("vis_notifier"), "screen_exited")
queue_free()
pass
func _process(delta):
translate(velocity * delta)
pass
func create_flare():
var flare = scn_flare.instance()
flare.set_global_position(get_global_position())
utils.main_node.add_child(flare)
pass
- 상속으로 Player의 laser씬 만들기
- laser_ship.tscn으로 저장
- sprite에는 laser_ship.png 지정
- shape에는 rectangle, extends (3,6)
- vis_notifier에는 Rect w:6, h:12, x:-3, y:-6 으로 설정
- y속도: 350으로 설정
- laser_ship노드를 화면 중앙에 놓고 잘 실행되는지 확인
- Debugger > Remote Inspector에 보면 해당 노드가 사라졌음을 확인할 수 있다.
- 확인 후 원점으로 되돌려놓는다.
<Ship에 레이저 발사 구현하기>
- ship 노드를 불러와서 하위에 Node2D (cannons로 변경) 추가
- cannons노드 하위에 position2D(left로 변경) 추가
- cannons > Node2D > Transform > Pos에 (-12, -8) 입력하여 위치 수정
- left를 복사하여 right노드로 변경
- Pos값을 (12, -8)로 변경
- ship.gd 수정
'Programming > Godot' 카테고리의 다른 글
고도엔진 2D 슈팅게임 - 6 아머, 파괴 (0) | 2022.01.07 |
---|---|
고도엔진 2D 슈팅게임 - 5 Enemy생성2 (0) | 2022.01.06 |
고도엔진 2D 슈팅게임 - 3 Enemy생성1 (0) | 2022.01.04 |
고도엔진 2D 슈팅게임 - 2 마우스 컨트롤과 배경 (0) | 2022.01.04 |
고도엔진 2D 슈팅게임 - 1 프로젝트 세팅과 Player (0) | 2022.01.03 |