게임 만들기 - Godot 주가 이력·Scene 분리·선 그래프 구현하기

오늘 한 것 주별 주가 이력을 StockState.price_history에 저장 현재가, 주간 등락액, 주간 등락률을 가격 이력에서 계산 기존 Game 화면에 섞여 있던 도박장, 주식시장, 은행을 장소별 Scene으로 분리 장소 선택 화면에 현재 시간과 보유 현금을 표시 Godot의 Control과 Node2D가 각각 어떤 역할을 맡는지 학습 가격 이력을 화면 좌표로 변환하고 draw_polyline()으로 종목별 선 그래프를 그림 오늘은 앞서 배운 정의 데이터·가변 상태·파생 데이터 분류를 주가 이력에 적용한 뒤, Godot의 Scene 분리와 사용자 정의 UI 그리기라는 새로운 개념으로 확장했다. ...

2026년 8월 3일 · 10 분 · 배준수

게임 만들기 - 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로 디버거 실행 ...