본문 바로가기

2022/01

(21)
Godot GUI 프로그래밍 - 컨테이너 GUI에서 레이아웃을 구성할 때 앵커를 이용해서 다양한 종횡비를 처리할 수도 있습니다만, 좀더 효과적으로 내부 요소들을 배치하기 위해서는 컨테이너가 필요합니다. 컨테이너 노드를 사용하면 모든 자식 노드는 자신의 지정된 위치가 무시됩니다. 즉, 컨테이너가 위치를 제어하게 되고, 컨테이너의 크기가 조정되면 모든 자식 노드가 그에 따라 재배치되며 사용된 컨테이너 유형에 따라 동작합니다. HBoxContainer 가 자식 버튼 의 크기를 조정 하는 예입니다. Size Flag 컨테이너에 노드를 추가할 때 컨테이너가 각 자식을 처리하는 방식은 주로 Size Flag에 따라 다릅니다 . Size Flag는 컨테이너의 자식노드(컨트롤 노드)의 inspector에서 찾을 수 있습니다. 크기 플래그는 수직 및 수평 크기..
C#(WPF) 프린트 - 단순 출력부터 다이얼로그 없이 출력하기까지 https://www.c-sharpcorner.com/uploadfile/mahesh/printing-in-wpf/ Printing in WPF This article discusses the process of printing in WPF and how to print a FlowDocument, Control, and Window in WPF. www.c-sharpcorner.com 1. 단순 출력 기초 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls;..
Godot 엔진 시작하기 - Signal Signal 소개 Signal은 옵저버 패턴의 Godot버전입니다. 특정 이벤트가 발생하면 노드는 신호를 보낼 수도 있고, 다른 노드는 그 신호에 응답할 수도 있습니다. 예로, 버튼이 눌려 있는지 매 프레임마다 확인하는 대신 버튼이 눌렸을 때 Signal을 보낼 수 있습니다. 타이머 예 Timer 노드를 이용한 예제를 살펴보겠습니다. Node2D와 두 개의 자식(Timer 및 Sprite )이 있는 새 씬을 만듭니다 . 씬독에서 Node2D의 이름은 TimerExample로 바겠습니다. Sprite의 텍스처에는 LoadSprite의 Texture 속성 드롭다운 메뉴에서 Godot 아이콘이나 원하는 다른 이미지를 할당합니다. 루트 노드에 스크립트를 첨부하되 아직 코드를 추가하지 마십시오. 씬 트리는 아래와..
Godot 엔진 시작하기 - 스크립팅 2 스크립팅(계속) Processing 대부분의 스크립트는 매 프레임에서 처리되어야 합니다. 처리에는 idle(유휴상태) 처리와 physics(물리) 처리의 두 가지 유형이 있습니다. Idle 처리는 Node._process() 메서드가 스크립트에서 발견되면 활성화됩니다. Node.set_process() 함수로 켜고 끌 수 있습니다. 이 메서드는 프레임이 그려질 때마다 호출됩니다. func _process(delta): # Do something... pass _process() 함수가 호출 빈도는 실행 중인 애플리케이션의 FPS(초당 프레임 수)에 따라 다릅니다. 이 비율은 실행 시점마다, 또는 장치에 따라 다를 수 있습니다. delta매개변수에는 _process()를 호출한 이전 시점부터 경과된 시간(..
Godot 엔진 시작하기 - 스크립팅 스크립팅 언어 사용 가능한 스크립팅 언어 Godot는 GDNative 기술을 통해 GDScript, C#, VisualScript, C++ 의 4가지 게임플레이 프로그래밍 언어를 공식적으로 제공합니다 . 커뮤니티에서 지원하는 언어로 Python, Lua, Rust 등도 있습니다. 단일 프로젝트에서 여러 언어를 사용할 수 있습니다. 예를 들어 팀에서 GDScript로 게임 플레이 로직을 코딩할 수 있습니다. 작성 속도가 빠르기 때문에 레벨 디자이너가 그래픽 언어 VisualScript로 퀘스트를 스크립팅하도록 하고, C# 또는 C++를 사용하여 복잡한 알고리즘을 구현하고 성능을 극대화할 수 있습니다. 또는 GDScript 또는 C#으로 모든 것을 작성할 수 있습니다. 어떤 언어를 사용해야 하는가? GDSc..
Godot 엔진 시작하기 - 인스턴스 생성 요약 인스턴싱은 편리함이 많습니다. 장면을 세분화하고 관리하기 쉽게 만드는 기능. 여러 노드 인스턴스를 한 번에 관리하고 편집하는 기능. 복잡한 게임 흐름 또는 UI를 나누어 구성하고 포함하는 기능. (Godot에서 UI 요소도 노드(장면)임). 소개 Scene & Node 에서 씬은 하나의 루트 노드에서 시작되는 트리 구조의 노드 모음임을 배웠습니다. 원하는 만큼 장면을 만들어 디스크에 저장할 수 있습니다. 이러한 방식으로 저장된 장면을 "Packed Scene"이라고 하며 .tscn 확장자의 파일로 저장됩니다. 씬이 저장되면 다른 씬에서 노드처럼 인스턴싱 할 수 있습니다. 위 그림에서 Scene B는 Scene A에 인스턴스로 추가되었습니다. 인스턴싱 예시 샘플 프로젝트: instancing.zip...
Godot 엔진 시작하기 - Node 와 Scene Node(노드) 노드는 게임 구축의 기본 블록입니다. 이미지를 표시하고, 사운드를 재생하고, 카메라 뷰를 표현하는 등 수행할 수 있는 기능에 따라 수십가지 종류가 있습니다. 모든 노드에는 다음 속성이 있습니다. 이름. 편집 가능한 속성. 매 프레임마다 업데이트될 콜백함수 새로운 속성과 기능으로 확장 다른 노드에 자식으로 추가 마지막 속성이 키포인트입니다. 여러 다른 기능의 노드를 결합하면 더 복잡한 동작을 하는 노드가 생성됩니다. 이전에 보았듯이 "Character" 노드는 KenematicBody2D 노드, Sprite2D 노드, Camera2D 노드 및 CollisionShape2D 노드를 사용하여 카메라가 따라가며 뷰가 전환되는 캐릭터를 만들 수 있었습니다. Scene(장면) 캐릭터 씬과 같이 하나..
Godot 엔진 시작하기 - 에디터 [Godot 엔진 다운로드] 프로젝트 매니저 Godot를 실행하면 가장 먼저 보게 될 창은 프로젝트 매니저입니다. 최초 실행시에는 프로젝트가 없으므로 애셋 라이브러리를 열 것인지 묻는 팝업이 표시됩니다. 우선 취소하고 신규 프로젝트 생성을 하겠습니다. 이제 프로젝트 관리자가 표시되면 게임 프로젝트를 생성, 제거, 가져오기 또는 시작(열기)할 수 있습니다. 오른쪽 상단에는 편집자의 언어를 변경할 수 있는 드롭다운 메뉴가 있습니다. 애셋 라이브러리 프로젝트 탭에서 오픈 소스 프로젝트 템플릿과 데모를 다운로드하여 빠른 시작을 할 수 있습니다. 원하는 템플릿이나 데모를 선택하여 다운로드가 완료되면 설치를 클릭하고 프로젝트 경로를 선택하면 됩니다. 프로젝트 생성 또는 가져오기 새 프로젝트를 생성하려면 오른쪽에 있..