본문 바로가기

전체 글

(265)
무료 페인팅 프로그램 크리타(Krita) 소개 요즘 게임을 만들고 있다보니 이미지를 다룰 일이 많아졌습니다. 이미지 편집 하면 가장먼저 Adobe의 Photoshop을 떠올리실텐데요, 유료인 요금정책으로 인해 대부분은 사용을 못하던지, 아니면 암암리에...적당히 사용하고 있을텐데요. 그래서 오늘은 무료 페인팅 프로그램을 알아보려고 합니다. 바로 크리타(Krita)입니다. Krita는 오픈소스 프로그램으로 누구나 무료로 사용가능하며, 기업에서 사용하더라도 무료입니다. 또한 결과물에 대해 상업적으로 이용하더라도 아무런 제한이 없습니다. Krita는 리눅스 진영의 대표적인 양대 데스크탑환경인 GNOME과 KDE중 KDE환경의 표준 이미지 에디터입니다. 리눅스의 이미지 에디터 하면 GIMP를 떠올리실 분도 계실텐데요, GIMP가 포토샵에 대항마라고 하면, ..
Godot사용팁-AnimationTree노드의 Blendmode2D로 애니메이션 컨트롤 오늘은 AnimationTree노드에 대해 알아보겠습니다. 처음 캐릭터의 애니메이션을 만들면 AnimationPlayer노드를 많이 사용하는데요, 이 노드만 이용해서 각종 상태를 코드로 컨트롤하려면 좀 힘듭니다. 많이 힘듭니다. 머리는 쥐가나고, 코드는 스파게티가 되고, 뭐 하나라도 추가하려면 완전... 그래서 여기서도 똑똑하신분이 상태 관리하라고 노드를 하나 주셨는데, 그게 바로 AnimationTree노드입니다. AnimationTree노드를 사용하려면 각각의 동작 Animation은 사전에 구현이 되어있어야합니다. 이미 존재하는 Animation을 컨트롤하는 상태관리자라고 보시면 됩니다. 참고로 저는 코로나 격리기간 중에 아래와 같은 게임을 7살 딸과 함께 만드는 중이었습니다. 탑다운 방식이다보니 ..
Godot GUI프로그래밍 예제 - 시계만들기 1. Display Size를 (400,500)으로 세팅합니다. 2. Borderless를 설정합니다. 3. Per Pixel Transparency를 Allowed, Enabled 로 바꿉니다. 4. 노드 구성 - clock (control) ㄴ ColorRect (ColorRect) ㄴ Body (sprite) : 시계 몸체 이미지 ㄴ pivot_h (Node2D) ㄴ Hour (sprite) : 시침 이미지 ㄴ pivot_m (Node2D) ㄴ Minute (sprite) : 분침 이미지 ㄴ pivot_s (Node2D) ㄴ Second (sprite) : 초침 이미지 5. Body는 앱 중앙에 위치시키고, pivot들은 Body의 중앙에, pivot 내부의 sprite이미지들은 위와같이 정렬해줍니..
프로그래밍 언어 랭킹 사이트 - 2022년 2월 포스팅이 귀찮아서 미뤘더니 벌써 2월이네요. 올해의 유망 프로그래밍 언어 순위를 알아보겠습니다. 1.Tiobe Index 인터넷에서 많이 언급된 언어를 기반으로 추정한 순위입니다. 인기도와 꼭 부합할 수는 없지만 참고할만 한 자료라고 보시기 바랍니다. 이젠 Python이 계속해서 1위를 자리매김한 것으로 보이네요. 특이한 점은 Visual Basic이 6위라고 하네요. 2.PYPL Index 이 사이트는 구글에서 얼마나 자주 특정 언어의 tutorial을 검색하는가를 분석하여 지표를 만들었습니다. 신규 프로그래밍 언어에 대한 입문자가 얼마나 많은지 판단할 수 있습니다. 다른 자료로 만든 지표임에도 Python의 자리는 동일하게 1위입니다. TIOBE와는 달리 웹에서 주로 쓰이는 JAVA(백엔드)와 Jav..
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()를 호출한 이전 시점부터 경과된 시간(..