"리듬 게임 분석하기" 글에 이어서 여러 가지 기술적 요소를 살펴보고 있다. ■ 씬 인스턴스 활용 다양한 게임 요소들은 동적인 요소와 정적인 요소로 나눌 수 있는데 음악의 비트에 따라 터치 또는 드래그하도록 숫자와 원으로 표시하는 씬이나 터치한 곳에 점수를 표시하는 씬은 게임 진행에 따라 위치와 내용, 개수가 동적인 요소이다. 반면에 배경 이미지나 게임 진행 중 화면 상단에 표시하는 점수는 게임 제작 시점에 정해진 위치와 개수대로 유지하는 정적인 요소라 할 수 있다. 동적인 요소든 정적인 요소든 동일한 씬을 위치와 모양을 바꾸어 가며 재사용하는 것이 씬의 인스턴스 활용이다. 1. 동적 예제1 extends Node2D export var sprite_fx: PackedScene func _ready() ..
앞선 글("노드와 씬(Scene), Hello World 프로젝트")에서 노드는 다른 노드를 자식 노드로 가질 수 있을 뿐만 아니라 다른 노드의 자식 노드가 되는 방식으로 트리 구조의 노드 그룹을 형성하며, 씬은 하나의 루트 노드로 시작하는 계층 구조의 노드 그룹을 가지며 파일에 저장되고(*.tscn) 불러올 수 있고 개체화(instance) 할 수 있는 특징이 있음을 다루었다. 이번 글에서는 개체화 맛보기를 통해서 개체화(instance)에 대한 이해를 높이고자 한다. 씬 창에서 일반적인 노드위에 마우스를 올려두면 좌측 그림의 "유형:Node2D"와 같은 형태로 노드의 유형을 표시한다. 그렇지만 어떤 씬의 인스턴스인지와 유형을 우측의 그림처럼 표시하는 것이 바로 인스턴스이다. 그림에서 확인할 수 있듯이..
새 프로젝트 만들기로 노드와 씬의 개념을 잡기 위한 HelloWorld 프로젝트를 생성한다. C언어, 파이썬, C#, PHP 등 무슨 프로그래밍 언어를 배우든 간에 시작 시점에 뭔가를 코딩해서 컴파일 후 그 실행 결과를 보는 것만큼 중요한 것은 없다. 백날 머리로 "그렇구나!" 해서는 아무 소용이 없다. 프로그래밍은 상상한 것을 코딩하고 그 결과를 확인하는 과정이라 해도 과언이 아니기 때문이다. 그래서 화면에 "Hello World!"라고 출력하는 것은 아무것도 아닌 것처럼 보일지는 몰라도 언어 시스템 전체를 움직이게 하고 그것을 몸으로 경험하는 아주 중요한 작업이다. 마찬가지로 고도의 생산 시스템을 전체적으로 움직여 보는 "Hello World!"를 출력해 보고자 한다. 프로젝트를 생성하고 편집기를 열..