ObjectHandler 에서
ObjectHandler / ObjectHandler.gd 파일에서 무기발사 구현하는 코드에서
instance.setup_weapon(dir, speed) 에서 방향벡터와 스피드 관련 해서 함수 호출하고
add(obj: Node2D, g_position: Vector2, dir: Vector2) 에서
dir (방향벡터)를 다시 rotation 에 대입하는지 좀 이해가 안됩니다..
설명부탁드립니다..^^
아래는 해당 소스코드입니다.
instance.setup_weapon(dir, speed)
call_deferred("add", instance, pos, dir)
func add(obj: Node2D, g_position: Vector2, dir: Vector2) -> void:
add_child(obj)
obj.global_position = g_position
obj.rotation = Vector2.RIGHT.angle_to(dir)
Answer 1
1

obj.rotation = Vector2.RIGHT.angle_to(dir) 줄을 삭제해보고(=주석 처리하고) 전체 게임을 실행해보면

로켓들이 플레이어 우주선 방향(dir)에 관계없이 항상 오른쪽(obj.rotation = Vector2.RIGHT)을 바라본 채로 날아가게 됩니다.
그래서 미사일의 방향을 꺾어주기 위해
obj.rotation = Vector2.RIGHT.angle_to(dir) 을 해주어야 하는 것입니다(나머지 무기 2종은 공모양이어서 회전이 의미가 없기는 합니다)
조금 더 보충 설명하자면
dir은 플레이어 우주선이 바라보는 방향을 가리키는 것이며

player.gd의 fire_rocket함수에서 찾을 수 있습니다. (파란 박스 부분을 dir로 emit하는 것)

미사일의 rotation을 파란색 화살표(dir)만큼 회전해줄 필요가 있는 것입니다.
코드를 거슬러 올라가거나 디버깅할때 '컨트롤+함수클릭'이나 '컨트롤+쉬프트+F'로 검색하는 기능이 유용합니다.
이해안가시는 부분 질문 많이 주세요
감사합니다!
김영한로드맵으로 백엔드개발자가 될 수 있나요?
0
39
1
문제2번
0
65
2
Enable Linting 항목을 찾을수가 없습니다.
0
35
2
질문있습니다.
1
48
2
섹션3. 11 회원객체 다이어그램
0
31
1
OCP, DIP과 @Qualifier 어노테이션에 대해서 질문합니다.
0
31
1
멀티스레드
1
50
2
성능 오버헤드
1
45
2
volatile에 대해 질문 있습니다.
2
72
2
Mark and Sweep
1
53
1
GC 알고리즘
1
53
2
54.(심화) 보스 구현(2) -state Machine
0
85
2
21. Dictionary 활용 저장&로드
0
96
2
66강. INPUT 관리
0
67
2
31강 질문
0
72
2
69번 강의에서 에러 발생 보고
0
86
2
노드의 내장 시그널 이용 관련 문의
0
90
3
46. 상속씬(3) 수업 질문
0
82
2
3. 미니 슈터게임 > 레이저씬 에서 global_position 과 position 차이??
0
88
2
안드로이드, iOS빌드
0
164
1
우주선 회전
0
112
2
시그널 - 자식에서 부모노드로 접근
0
175
2
섹션2 규칙의 필요성 부분에서 Godot 4 Function Chaining 이란?
0
199
2
웨이브 핸들러 섹션에서 Custom Resource
0
152
2

