게임 만들기 - Godot 기초 배우기

오늘 한 것 Godot 4.7 설치 (Homebrew) 첫 프로젝트 세팅, 씬(.tscn)과 스크립트(.gd) 연결 확인 클릭하면 자산이 오르는 간단한 UI 예제 제작 자산이 랜덤(50/50)으로 오르내리는 슬롯머신으로 발전 씬 전환(은행 페이지) + 전역 상태(Autoload) 도입 상태 메시지(“돈을 벌었다!” / “돈을 잃었다!”) 표시 추가 tutorials/, docs/ 폴더로 프로젝트 구조 정리 1. 스크립트와 씬 씬(Scene): 화면에 나타나는 것. 버튼, 라벨 등을 배치해두는 선언적 파일(.tscn). 스크립트(Script): 동작, 변수, 로직 등 실제 코드(.gd). 2. 노드 vs 변수 변수: 값 하나를 담는 상자. 노드: 객체(라벨, 버튼, 관리자 등). 따라서 자신만의 속성과 함수를 가짐. 씬 정의 파일(.tscn) 내에 정의되어 있음. Autoload: 노드를 전역으로 등록. project.godot 파일에서 등록 가능. 3. Autoload (싱글톤) 씬이 바뀌어도 사라지지 않는 전역 저장소. 실제 정체는 전역 노드. 전역 변수는 전역 노드의 속성으로 관리되는 것. 4. 멀티 씬 씬이 여러 개면 씬끼리 변수를 공유해야 할 수 있음. 전역 노드를 하나 설정하고, 그 노드의 속성들을 전역 변수로 쓰는 방식을 이용 (= GameState.gd를 Autoload로 등록해서 GameState.money를 여러 씬이 공유). 5. 씬 전환 1 get_tree().change_scene_to_file("res://tutorials/scenes/Bank.tscn") get_tree(): 씬 관리자(SceneTree 객체) 반환. 씬 관련 함수는 씬 관리자만 호출할 수 있음 (change_scene_to_file()은 SceneTree의 메서드이므로 get_tree()로 그 객체를 먼저 가져와야 호출 가능). 6. $이름 get_node("이름")의 축약형으로, 이름이 ‘이름’인 노드를 찾아오라는 검색 명령임 (변수 선언이 아님). 나중에 노드 참조가 많아지면 아래처럼 해두면 자동완성/타입 체크가 편함: 1 @onready var status_label: Label = $StatusLabel 프로젝트 구조 1 2 3 4 5 6 7 8 tutorials/ ├── scenes/ │ ├── Main.tscn # 자산 표시, 돈넣기(슬롯머신), 은행가기 버튼 │ └── Bank.tscn # 자산 표시, 대출받기, 돌아가기 버튼 └── scripts/ ├── Main.gd ├── Bank.gd └── GameState.gd # Autoload로 등록된 전역 자산 상태 실습 Godot 에디터 사용법. 아래 파일 시스템에서 Scene을 추가 후 Command + b로 디버거 실행 ...

2026년 7월 16일 · 2 분 · 배준수

Email 관련 Task 완료!

Today I Learned 날짜 2023년 12월 26일 내용 지난 주에 정리했던 대로 로직을 완성했다. 기존의 messaging_log를 처리하는 스크립트는 messaging의 비활성화 여부를 체크하지 않기 떄문에, 스크립트를 새로 생성했다. 여기서는 messaging 설정에 따라 messaging_log의 sending_status를 출력하도록 했다. ON 일땐 보내는 로직이 발생하지만 필요한 param이 모두 입력되지 않았기 떄문에 발송 오류가 발생하여 Unable로 설정되야 하고, OFF 일 때는 보내선 안되므로 CHANNEL_OFF 로 설정되야 한다. 로컬에선 문제 없이 작동한다. 회고 노로바이러스 떄문에 너무 힘들다.