inflearn logo
講義

講義

知識共有

cobakさんの投稿

cobak cobak

@cobak

受講生
95
受講レビュー
14
講義評価
4.6

投稿 14

Q&A

54.(심화) 보스 구현(2) -state Machine

안녕하세요. AnimationTree가 아주 간단한 방식이기도 하고 godot 엔진에 내장된 기본 기능이어서 소개를 하였습니다. 꼭 AnimationTree가 절대적인 장점이 있는 것은 아니고, 자체적으로 state machine을 만들거나 다른 개발자들이 만든 애드온(확장 플러그인)을 통해 구현하기도 합니다. 아래는 godot에서 많이 쓰이는 Beehave라는 애드온을 소개합니다. https://godotengine.org/asset-library/asset/1349 사용법을 익히고 나면 state machine을 만들때 유용하다는 평들이 많은데, 중급자 이상의 개발 숙련도를 갖추었을때(자신감이 좀 붙었을 때) 한번 알아보시면 좋을것 같습니다. 이런 애드온들은 대안이 될 수 있음에도 불구하고 엄연히 외부 프로그램이므로 강의에 넣지는 못하였습니다. (실제 제가 사용하지도 않습니다) 감사합니다!

いいね数
0
コメント数
2
閲覧数
98

Q&A

21. Dictionary 활용 저장&로드

안녕하세요. 해당 강의 21.은 딕셔너리만 사용해서 저장/로드를 구현한 것입니다. ^^; 저장에 쓰인 store_var() 함수의 도움말 검색을 눌러보시면 딕셔너리를 포함한 모든 Variant를 저장할수 있는데 Variant는 딕셔너리, 어레이를 포함한 모든 데이터 타입을 뜻한다고 나와있습니다. 즉 save_data: Array 형태도 작성하여 얼마든지 저장 가능합니다. enum도 내부적으로는 정수값(int)이므로 당연히 저장 가능합니다. 딕셔너리로 소개해드린 이유는 딕셔너리 저장이 godot 이외의 게임 개발에서도 널리 쓰이고 권장되는 방식이기 때문입니다. ("Json" 개념 참조) 추가 질문은 제가 잘 이해를 못한것 같습니다만, 섹션5. 슈터 게임 섹션에서 Array, Enum, Dictionary 모두 여기저기 활용을 합니다. 감사합니다!

いいね数
0
コメント数
2
閲覧数
106

Q&A

66강. INPUT 관리

안녕하세요! 말씀하신대로 부스터, 유도탄 발사는 가끔씩만 입력하므로 process가 아닌 unhandled input(또는 input)에 넣었습니다. 66강에서 캐릭터 조작 관련은 unhandled input에 쓰겠다고 제가 분류를 한지라, unhandled input에 넣게 되었네요. 아울러 player 이동은 워낙 역동적으로 움직이다 보니 process에 두어도 성능 낭비가 없겠다는 판단이 들어 process에 남겨두었습니다. 다시 보니 var direction을 바깥에서 선언하고, process에 있는 direction = Input.get_vector("move_left", ... ,"move_down") 한 줄을 unhandled input으로 가져오는 게 오해의 소지를 최대한 없앨 것 같네요. 감사합니다!

いいね数
0
コメント数
2
閲覧数
81

Q&A

31강 질문

안녕하세요. 문의주신 내용이 잘 정리된 사이트는 저 역시 아는 바가 없네요. 관심이 가는 노드를 눌러 인스펙터 탭을 확인하는 방법이 가장 직관적인 것 같습니다. 아울러 Claude를 통한 ai 답변 내용을 공유합니다. 틀린 부분은 없어 보이네요. 📋 노드-리소스 관계 상세 정리 🎨 2D 그래픽 관련 감사합니다

いいね数
0
コメント数
2
閲覧数
79

Q&A

69번 강의에서 에러 발생 보고

작지만 치명적인 버그네요 제보해주셔서 감사합니다 추록 파일을 올리도록 하겠습니다.

いいね数
0
コメント数
2
閲覧数
90

Q&A

노드의 내장 시그널 이용 관련 문의

'굳이' 맞습니다 ㅎㅎ 개인 취향입니다만, 아무래도 가독성과 디버그 용이함이 제일 큰 이유 같습니다. 또 다른 개인적인 이유로는 경우에 따라 런타임에 disconnect 메서드를 쓸 일이 있는데 이를 connect 메서드와 함께 관리하면 일관성이 느껴져서 귀찮아도 애초에 수동 connect를 선호합니다. (물론 에디터에서 연결한 경우에도 disconnect를 활용 가능합니다^^) 감사합니다!

いいね数
0
コメント数
3
閲覧数
97

Q&A

46. 상속씬(3) 수업 질문

안녕하세요. 파이썬의 super()과 다르게, super() 구문이 들어간 해당 메서드(부모 클래스)만 실행된다고 보시면 됩니다. 따라서 부모 클래스의 메서드를 실행하고 싶으면 일일이 super()를 써야하며, on_area_entered에서 super()을 쓰지 않은 결과 부모 클래스의 pass 구문 조차 실행되지 않는다고 보시면 됩니다. super()을 써봤자 pass가 실행되니까 의미없다고 보시면 되겠네요. 파이썬에서의 super(). something() 식으로 따로 호출을 한다는 점과 차이가 있습니다. 감사합니다!

いいね数
0
コメント数
2
閲覧数
92

Q&A

3. 미니 슈터게임 > 레이저씬 에서 global_position 과 position 차이??

안녕하세요 글로벌 좌표가 로컬 좌표보다 직관적이고 이해하기 쉬워서 사용한 것이지 별다른 의미는 없습니다! ^^; 커리큘럼 상으로도 뒤쪽에서 로컬 좌표계를 설명하기 때문에 글로벌 포지션을 먼저 사용했습니다. 감사합니다!

いいね数
0
コメント数
2
閲覧数
91

Q&A

안드로이드, iOS빌드

안녕하세요! 우선 고도 엔진에서 모바일 게임 지원이 아직 그렇게 좋지는 않다는 점을 알려드리고 싶네요. 인앱 결제나 애드몹을 쓰실 때 초보자가 구현하기 만만치 않고, 특히 ios 쪽이 상대적으로 더 빈약합니다. 규모가 작은 모바일 게임을 만들어서 안드로이드에서 실행되는 .apk를 빌드하고 싶으시다면 https://www.youtube.com/watch?v=dCLYMF32ZBE 위 간단한 영상을 참고하시면 도움이 될 것 같습니다. 하지만 (보통의 경우) 광고나 인앱 결제를 연동하고 구글 플레이에 출시를 하고 싶으시다면 gradle이라는 것을 빌드 하여 .aab를 빌드하여야 합니다. https://docs.godotengine.org/en/stable/tutorials/export/android_gradle_build.html gradle build는 위 공식 문서를 참고해주시면 될 것 같습니다. (android 빌드 템플릿 설치를 하시면 되는데 강의 내용과 꽤 유사합니다) ios의 경우 xcode를 이용해서 빌드를 해야 하는데, https://www.youtube.com/watch?v=x_ZFAV2id3I 위의 긴 영상에 macOS를 통해 빌드부터 앱 스토어 등록까지 자세히 나와 있어서 참고하시면 될 것 같습니다. 고도 엔진도 워낙 빠르게 발전하다 보니, 모바일 개발 생태계가 좋아지는 대로 모바일 게임 강의 제작도 고려하고 있습니다.^^ 감사합니다!

いいね数
0
コメント数
1
閲覧数
177

Q&A

우주선 회전

안녕하세요 강의 12분 부근의 중간 코드를 말씀하시는 것 같네요! 해당 코드는 대각선 방향(방향 버튼 2개)을 누른 손가락을 동시에 떼야 대각선으로 멈추게 되고, 두 손가락을 떼는 데 조금이라도 오차(60분의 1초 이상)가 생기면 조금이라도 늦게 뗀 손가락 기준으로 get_vector가 바뀌기 때문에 우주선이 그쪽으로 바라보게 됩니다. 이는 오류가 있다기 보다는 _process 함수가 1초에 60번 우리 키보드의 입력을 받기 때문에 생기는 부득이한 현상.. 이라고 이해를 하시고 넘어가면 될 것 같습니다. 감사합니다!

いいね数
0
コメント数
2
閲覧数
121