기본 콘텐츠로 건너뛰기

6월, 2020의 게시물 표시

[Godot Engine] 다양한 화면 크기에 맞게 게임화면을 가운데 위치 시키는 방법

다양한 화면 크기에 맞게 게임화면을 가운데 위치 시키는 방법 Godot engine은 다앙한 화면에서 어떻게 화면을 보여줄지 설정할 수 있게 여러가지 옵션들을 제공해 준다.  만일 화면을 가득 채우지 않고 검은색 띠로 화면의 남는 영역을 채워도 되거나, 게임의 가로세로 비율을 화면에 맞게 변경해도 된다면, 기본 옵션중에 하나를 적절히 골라 사용하면 된다. 하지만, 기본 옵션만으로는 가로 세로 비율을 유지 한 채로 다양한 화면크기에 맞춰서  게임배경을 화면 가득 채우면서 게임내 요소들을 적절히 배치 하는 것은 쉽지 않는 일이다. 우선 요구사항을 정리해 보면 다음과 같다. 다양한 화면 크기에서 배경은 화면을 꽉 채워야 한다. 게임의 컨텐츠들은 화면 크기에 맞게 적절히 배치 되어야 한다. 이 두가지 요건을 만족시키는 여러가지 방법이 있을 수 있겠지만, 그 중 내가 시도한 내가 생각하기에 가장 간단한 방법을 여기에 소개 해 보려 한다. 1. 배경과 컨텐츠를 분리 한다. 배경 노드와 배경외 나머지 게임 컨텐츠를 분리해서, 배경은 화면을 가득 채우는데 사용하고 컨텐츠는 화면 크기에 맞게 조절해서 배치 하도록 한다. 우선 새로운 씬을 만들고, 이름을 Game 이라고 하자. 2. 배경을 전체 화면에 맞도록 조정한다. 만일 단색 배경으로 할 경우에는 ColorRect 노드를 사용하면 될 것 이고, 이미지를 사용하려 한다면 TextureRect, 그외 테두리가 있는 배경을 원한다면 NinePatchRect를 사용하면 된다. 좀 더 복잡한 배경을 원한다면 별도의 Scene으로 구성한 후, instance화 해서 배경으로 사용할 수 도 있을 것 이다. 이 글에서는 가장 단순한 예제를 통해 아이디어를 보여주기 위해 단색으로 배경을 설정 할 것 이므로 필요한 것은 ColorRect 다. S...

[Godot engine] Texture Button에 AnimatedTexture 설정 하기

Texture Button에 AnimatedTexture 설정 하기 Godot engine에서 TextureButton에는 다양한 texture들을 사용할 수 있다. 이 많은 texture format들 중, AnimatedTexture를 사용하는 방법을 알아 보자. AnimatedTexture는 몇장의 그림을 연속적으로 변경하면서 보여주면서 animation 효과를 주는 texture다. 우선 사용할 그림들을 준비 한다. 간단하게 text 이미지의 높이를 조절한 그림들을 준비 했다. 준비한 그림들은 godot editor에 미리 resource로 import 해 준다. res:// 아래에 images 라는 폴더를 생성하고 drag&drop 으로 옮기면 godot editor가 자동으로 import 한다. Scene 에 TextureButton node를 추가 한다. 방금 추가한 TextureButton을 선택 하고, 우측 Inspector 영역에서 Textures항목을 펼친다. 항목을 펼치면, 다양한 상황에 따라 texture를 설정 할 수 있다. 버튼의 텍스트가 평상시에도 계속 움직이게 하고 싶으니까, Normal 인 경우에 AnimatedTexture를 설정 하도록 한다. 만일, 다른 상황에서 다른 animation 효과를 주고 싶으면 상황에 맞는 곳에 설정을 해 주면 된다. Normal 옆에 [empty] drop box를 선택하면 여러가지 Texture를 선택 할 수 있는데, 이때, New AnimatedTexture를 선택 한다. 버튼 이미지가 5개지만, 이미지는 버튼이 점점 작아지는 그림이 5개이므로 버튼이 작아졌다 다시 커지는 움직임을 만들려면, 총 8 프레임이 필요 하다. 따라서, Frames 항목을 8로 설정 한다. Frames 항목의 숫자를 늘리면 숫자만큼 Frame 0, Frame 1... 이런 식으로 Fra...

[C#] 자동으로 특정 팝업창 닫기

[C#] 자동으로 특정 팝업창 닫기 Windows UI 테스트 혹은 자동화 작업을 할 때, 특정 윈도우창 혹은 팝업창이 뜨는 것을 인지 하고, 내용을 얻거나 버튼을 누르려면,  System.Windows.Automation 의 AddAutomationEventHandler 를 사용하면 된다. Hook 설정 4 번째 라인에서 WindowOpendEvent를 설정 함 으로써, 창이 열릴 때 hook이 걸린다. 7 번째 라인에서 event handler를 등록 한다. Event Handler 설정 8 번째 라인에서 element의 이름이 내가 찾는 이름인지 비교한다. 15번째 라인에서 팝업창의 내용을 출력 한다. 22번째 라인에서 팝업창의 자식 element중에 "N" 문자가 포함된 것 즉, 아니오 버튼을 찾는다. 24~25번째 라인에서 버튼을 누르는 동작을 수행 한다.