본문 바로가기

분류 전체보기

(49)
Godot 스크립트 GDScript 작성 팁 및 서비스 관리 등에 다룬다. 3.5 버전 기준으로 작성된 점을 유의 하길 바랍니다. Godot Singleton Service 만들기 전역에서 무언가 관리하는 무언가를 만들 수 있는 방법을 소개한다. 그게 노드일 수도 있고, 서비스일 수도 있겠지만 노드라는 가정하에 설명하겠다. 1. 일단 빈 Node 를 만든다. (노드가 필요 없다면 그냥 Script 만 만들어도 된다.)2. Script 를 추가한다. 예제에서는 GlobalService 라는 이름으로 만들었다.3. 프로젝트 -> 프로젝트 설정 -> 오토로드 탭에 진입한다.경로쪽에 있는 폴더 아이콘을 눌러서 지정할 서비스 스크립트를 선택한 후, 오른쪽에 있는 추가 버튼을 눌러준다.4. 그럼 아래와 같이 자동으로 활성화가 체크되어..
Godot - UI CanvasLayer Godot 에 메뉴 같은 UI 적인 요소를 넣고 싶을 때는 일반적으로 씬의 루트를 CanvasLayer 를 선택해준다. (그래야 하위 노드들을 만들 때, 설정한 창 크기 기준에 맞춘다거나 할 수 있다.) MarginContainer 자식 요소를 자동으로 레이아웃하는 데 사용되는 노드다. MarginContainer를 사용하여 각 자식 요소의 마진을 설정하여 요소 간 간격을 만들고, 부모 요소의 크기 조정에 따라 자식 요소의 크기와 위치를 자동으로 조정할 수 있다. MarginContainer 를 선택하고 레이아웃에서 "사각형 전체" 를 선택하면 ViewPort 크기에 맞춰 넒어진다. 보통 MarginContainer 안에 있는 노드들을 중앙 정렬 시키고 싶을 때는 Size Flag ..
[TypeScript] overload 함수에서 No overload matches this call 에러 다음과 같이 오버로딩으로 된 코드를 작성했는데, No overload matches this call 이라는 error 가 발생 했다. function func(str: 'hi'): string; function func(str: 'bakery'): string; function func(arg: 'hi' | 'bakery'): string { return arg; } function callExample(str: 'hi' | 'bakery') { return func(str); // error occurred! } 급한 사람은 해결 방법부터 보자. 원인 에러 메시지를 자세히 보면 다음과 같다. No overload matches this call. Overload 1 of 2, '(str: "hi"):..
Godot - Animation Godot 에서 2D Animation 효과를 주기 위해 사용하는 노드들을 소개한다. AnimatedSprite 간단한 스프라이트 애니메이션을 만들 수 있는 노드다. AnimatedSprite 노드를 추가한 뒤, Frames 에서 새 SpritedFrames 를 추가한다. 그러면 오른쪽에 프레임 별 보여줄 이미지를 설정 할 수 있는 창이 뜬다. 설정한 뒤, Playing 을 enable 시켜야 애니메이션이 씬에 적용된다. Animation Player 해당 노드로 애니메이션을 좀더 디테일하게 다룰 수 있다. ex) 특정 오브제가 위아래로 움직이는 애니메이션 / 나타나거나 사라질 때 보여지는 애니메이션 등 Animation Player 노드를 추가하면 편집기 Inspector 에서 아래와 같은 화면을 볼 ..
프로그래머스 - 타겟 넘버 타겟 넘버 https://programmers.co.kr/learn/courses/30/lessons/43165?language=javascript ※ 문제 설명은 위 링크 참고 문제 풀이 permutation 과 dfs 그 어딘가에 있는 문제 같다. 주어진 numbers 의 길이 만큼만 + , - 연산을 계속 진행하면 된다. 핵심 dfs 함수는 인자로는 cur, count 두 개를 받고 다음과 같은 의미를 가진다. cur : + , - 연산으로 지금까지 계산한 값 count : 현재까지 사용한 numbers 내의 숫자 개수 function dfs(cur, count) { // numbers 의 length 만큼 탐색했다면 현재까지 계산 된 값이 target 과 일치하는지 확인한다. if(count ==..
Godot 노드들 Sprite 이미지를 넣어줄 때 사용하는 노드 원하는 이미지를 texture 속성에 넣어주면 된다. coliisionShape2D 충돌 관련 노드 ColorRect 그냥 직사각형 모양의 노드
Godot 편집기 Tip 단축키 모음 자식 노드 추가 : Ctrl + A 노드 복사 : Ctrl + D 노드 수평에 맞춰 움직이기 : Ctrl 키 누른채로 이동시키면 됨 특정 씬 검색해서 열기: Ctrl + Shift + O 편집기 유용한 기능들 1. 노드들 그룹핑 아래 사진에 표시된 아이콘을 누르면 자식 노드들을 한꺼번에 묶을 수 있다. 자식 노드를 한번에 이동시키고 싶을 때 편하다. 체인 모양 아이콘을 누르면 노드를 인스턴스화 시킬 수 있다. 인스터스화 된 노드느 다른 씬에 붙일 수 있다. 2. 씬의 편집화면 이동하기 씬 옆에 슬레이트 아이콘을 누르면 해당 해당 씬의 편집화면으로 이동할 수 있다. 노드 우클릭 메뉴 기능들 다른 씬에서 병합하기 다른 씬에서 가져오고 싶은 노드들을 내 하위 자식 노드로 가져올 수 있다. (복제 ..
[You don't know JS] Chapter 4 - 강제변환 javascript 의 말 많은 강제변환에 대해 정리해보자! 명시적 / 암시적 강제변환 책에서는 자바스크립트의 강제 변환 타입을 다음 두 가지로 정의하고 있다. 명시적 변환과 암시적 변환은 작동하는 방식에서도 조금 차이가 있다. (책에서는 미묘하다고 표현한다.) 암시적 강제변환 다른 작업 도중 불분명한 부수 효과로 변환 된다. 아래 예시에서 b 는 공백 문자열 "" 과의 + 연산을 처리하면서 9 를 동등한 문자열인 "9" 로 강제 변환한다. 이는 + 연산을 하면서 발생시킨 부수효과로 암시적 강제변환이다. const a = 9; const b = a + "" // "9" 명시적 강제 변환 의도적으로 타입변환을 발생시킨다. c 는 명백하게 String() 함수를 이용해 문자열 타입으로 변환하고 있다. 이는 ..