본문 바로가기
반응형

Programming/Godot31

Godot사용팁 - path2D Path2D노드 사용법에 대해 알아보겠습니다. Path2D노드를 사용하면 단순히 움직이는 캐릭터들(Enemy 나 NPC 등)의 단순 이동동작을 최소한의 코딩으로 구현할 수 있는 유용한 노드입니다. 1. 적당한 Enemy 노드가 있을 경우, 전체 동작하는 Scene에서 아래와 같이 구성을 하였습니다. Path2D노드는 하위에 항상 PathFollow2D를 자식으로 담고 있어야 합니다. Path2D노드가 포인트를 이용하여 라인을 생성하는 노드라면, PathFollow2D노드는 그 선을 어떤 방식으로 따라가는지를 설정하는 노드입니다. 2. Path2D노드를 다시 선택하면 아래 그림과 같이 에디터 상단에 포인터 추가/삭제/편집할 수 있는 버튼이 활성화됩니다. 적당히 이동 경로를 그려줍니다. 이 중 5번째 아이콘.. 2022. 3. 14.
Godot사용팁-AnimationTree노드의 Blendmode2D로 애니메이션 컨트롤 오늘은 AnimationTree노드에 대해 알아보겠습니다. 처음 캐릭터의 애니메이션을 만들면 AnimationPlayer노드를 많이 사용하는데요, 이 노드만 이용해서 각종 상태를 코드로 컨트롤하려면 좀 힘듭니다. 많이 힘듭니다. 머리는 쥐가나고, 코드는 스파게티가 되고, 뭐 하나라도 추가하려면 완전... 그래서 여기서도 똑똑하신분이 상태 관리하라고 노드를 하나 주셨는데, 그게 바로 AnimationTree노드입니다. AnimationTree노드를 사용하려면 각각의 동작 Animation은 사전에 구현이 되어있어야합니다. 이미 존재하는 Animation을 컨트롤하는 상태관리자라고 보시면 됩니다. 참고로 저는 코로나 격리기간 중에 아래와 같은 게임을 7살 딸과 함께 만드는 중이었습니다. 탑다운 방식이다보니 .. 2022. 3. 12.
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. 24.
Godot GUI 프로그래밍 - 컨테이너 GUI에서 레이아웃을 구성할 때 앵커를 이용해서 다양한 종횡비를 처리할 수도 있습니다만, 좀더 효과적으로 내부 요소들을 배치하기 위해서는 컨테이너가 필요합니다. 컨테이너 노드를 사용하면 모든 자식 노드는 자신의 지정된 위치가 무시됩니다. 즉, 컨테이너가 위치를 제어하게 되고, 컨테이너의 크기가 조정되면 모든 자식 노드가 그에 따라 재배치되며 사용된 컨테이너 유형에 따라 동작합니다. HBoxContainer 가 자식 버튼 의 크기를 조정 하는 예입니다. Size Flag 컨테이너에 노드를 추가할 때 컨테이너가 각 자식을 처리하는 방식은 주로 Size Flag에 따라 다릅니다 . Size Flag는 컨테이너의 자식노드(컨트롤 노드)의 inspector에서 찾을 수 있습니다. 크기 플래그는 수직 및 수평 크기.. 2022. 1. 25.
Godot 엔진 시작하기 - Signal Signal 소개 Signal은 옵저버 패턴의 Godot버전입니다. 특정 이벤트가 발생하면 노드는 신호를 보낼 수도 있고, 다른 노드는 그 신호에 응답할 수도 있습니다. 예로, 버튼이 눌려 있는지 매 프레임마다 확인하는 대신 버튼이 눌렸을 때 Signal을 보낼 수 있습니다. 타이머 예 Timer 노드를 이용한 예제를 살펴보겠습니다. Node2D와 두 개의 자식(Timer 및 Sprite )이 있는 새 씬을 만듭니다 . 씬독에서 Node2D의 이름은 TimerExample로 바겠습니다. Sprite의 텍스처에는 LoadSprite의 Texture 속성 드롭다운 메뉴에서 Godot 아이콘이나 원하는 다른 이미지를 할당합니다. 루트 노드에 스크립트를 첨부하되 아직 코드를 추가하지 마십시오. 씬 트리는 아래와.. 2022. 1. 12.
Godot 엔진 시작하기 - 스크립팅 2 스크립팅(계속) Processing 대부분의 스크립트는 매 프레임에서 처리되어야 합니다. 처리에는 idle(유휴상태) 처리와 physics(물리) 처리의 두 가지 유형이 있습니다. Idle 처리는 Node._process() 메서드가 스크립트에서 발견되면 활성화됩니다. Node.set_process() 함수로 켜고 끌 수 있습니다. 이 메서드는 프레임이 그려질 때마다 호출됩니다. func _process(delta): # Do something... pass _process() 함수가 호출 빈도는 실행 중인 애플리케이션의 FPS(초당 프레임 수)에 따라 다릅니다. 이 비율은 실행 시점마다, 또는 장치에 따라 다를 수 있습니다. delta매개변수에는 _process()를 호출한 이전 시점부터 경과된 시간(.. 2022. 1. 12.
Godot 엔진 시작하기 - 스크립팅 스크립팅 언어 사용 가능한 스크립팅 언어 Godot는 GDNative 기술을 통해 GDScript, C#, VisualScript, C++ 의 4가지 게임플레이 프로그래밍 언어를 공식적으로 제공합니다 . 커뮤니티에서 지원하는 언어로 Python, Lua, Rust 등도 있습니다. 단일 프로젝트에서 여러 언어를 사용할 수 있습니다. 예를 들어 팀에서 GDScript로 게임 플레이 로직을 코딩할 수 있습니다. 작성 속도가 빠르기 때문에 레벨 디자이너가 그래픽 언어 VisualScript로 퀘스트를 스크립팅하도록 하고, C# 또는 C++를 사용하여 복잡한 알고리즘을 구현하고 성능을 극대화할 수 있습니다. 또는 GDScript 또는 C#으로 모든 것을 작성할 수 있습니다. 어떤 언어를 사용해야 하는가? GDSc.. 2022. 1. 12.
Godot 엔진 시작하기 - 인스턴스 생성 요약 인스턴싱은 편리함이 많습니다. 장면을 세분화하고 관리하기 쉽게 만드는 기능. 여러 노드 인스턴스를 한 번에 관리하고 편집하는 기능. 복잡한 게임 흐름 또는 UI를 나누어 구성하고 포함하는 기능. (Godot에서 UI 요소도 노드(장면)임). 소개 Scene & Node 에서 씬은 하나의 루트 노드에서 시작되는 트리 구조의 노드 모음임을 배웠습니다. 원하는 만큼 장면을 만들어 디스크에 저장할 수 있습니다. 이러한 방식으로 저장된 장면을 "Packed Scene"이라고 하며 .tscn 확장자의 파일로 저장됩니다. 씬이 저장되면 다른 씬에서 노드처럼 인스턴싱 할 수 있습니다. 위 그림에서 Scene B는 Scene A에 인스턴스로 추가되었습니다. 인스턴싱 예시 샘플 프로젝트: instancing.zip... 2022. 1. 12.
Godot 엔진 시작하기 - Node 와 Scene Node(노드) 노드는 게임 구축의 기본 블록입니다. 이미지를 표시하고, 사운드를 재생하고, 카메라 뷰를 표현하는 등 수행할 수 있는 기능에 따라 수십가지 종류가 있습니다. 모든 노드에는 다음 속성이 있습니다. 이름. 편집 가능한 속성. 매 프레임마다 업데이트될 콜백함수 새로운 속성과 기능으로 확장 다른 노드에 자식으로 추가 마지막 속성이 키포인트입니다. 여러 다른 기능의 노드를 결합하면 더 복잡한 동작을 하는 노드가 생성됩니다. 이전에 보았듯이 "Character" 노드는 KenematicBody2D 노드, Sprite2D 노드, Camera2D 노드 및 CollisionShape2D 노드를 사용하여 카메라가 따라가며 뷰가 전환되는 캐릭터를 만들 수 있었습니다. Scene(장면) 캐릭터 씬과 같이 하나.. 2022. 1. 12.
Godot 엔진 시작하기 - 에디터 [Godot 엔진 다운로드] 프로젝트 매니저 Godot를 실행하면 가장 먼저 보게 될 창은 프로젝트 매니저입니다. 최초 실행시에는 프로젝트가 없으므로 애셋 라이브러리를 열 것인지 묻는 팝업이 표시됩니다. 우선 취소하고 신규 프로젝트 생성을 하겠습니다. 이제 프로젝트 관리자가 표시되면 게임 프로젝트를 생성, 제거, 가져오기 또는 시작(열기)할 수 있습니다. 오른쪽 상단에는 편집자의 언어를 변경할 수 있는 드롭다운 메뉴가 있습니다. 애셋 라이브러리 프로젝트 탭에서 오픈 소스 프로젝트 템플릿과 데모를 다운로드하여 빠른 시작을 할 수 있습니다. 원하는 템플릿이나 데모를 선택하여 다운로드가 완료되면 설치를 클릭하고 프로젝트 경로를 선택하면 됩니다. 프로젝트 생성 또는 가져오기 새 프로젝트를 생성하려면 오른쪽에 있.. 2022. 1. 12.
Godot 엔진 시작하기 - Godot(Godette) 엔진이란 Godot엔진에 대해 알아보겠습니다. 이름(...이라기보다는 발음)에 대한 논란이 지속적으로 발생하여 새로운 이름에 대해 커뮤니티를 중심으로 끊이지 않자, 최근 새로운 이름 Godette로 변경하였습니다. 아울러 마스코트도 이상한 톱니머리 얼굴이 아닌 예쁘장한 여학생 캐릭터를 만들었는데요. 머리에 뿔은 이 엔진의 동질성일까요? 계속 동일한 뿔모양을 가져가는 모습입니다. 본 포스팅에서는 기존부터 익숙히 알고 있던 이름인 관계로 Godot라는 명칭을 사용하겠습니다. 아르헨티나에 본사를 둔 OKAM이라는 회사에서 인하우스 툴로 사용하던 게임엔진으로 이를 MIT 라이센스하에 오픈소스로 배포한 것이라고 합니다. 주요 특징으로는 1. 완전 무료 MIT 라이센스 하에 배포되다보니 다른 제한사항도 없고 사용은 물론 수.. 2022. 1. 12.
고도엔진 2D 슈팅게임 - 12 최고점과 Saving - stage_menu.tscn에서 새 스크립트를 추가 - game.gd로 저장 - Project Settings > Autoload 에 game.gd파일 추가 - hud에 최고기록을 표시하는 라벨 추가 - stage_game.tscn > tex_score 노드 추가 - 노드 이름을 tex_bestscore로 변경 - 스크립트를 clear해주고, 다시 builtin script 추가 - 스크립트 이름을 tex_bestscore로 지정 - stage_game.tscn씬 > tex_score노드 > tex_score스크립트 수정 ...길다.... - 끝 - 2022. 1. 8.
고도엔진 2D 슈팅게임 - 11 Sounds - 새로운 씬 생성 - 빈 Node 추가 후 audio_player로 이름 변경, audio_player.tscn으로 저장 - Music 추가하기 - AudioStreamPlayer노드 2개 추가 - 하나는 배경음악 설정을 위한 노드 (background로 이름 변경), Sound에 music.ogg설정 - 다른하나는 효과음 설정을 위한 노드 (effect로 이름 변경) - Autoplay에 체크하여 시작 후 계속 플레이되도록 설정 - audio_player.gd 스크립트 추가 extends Node func _ready(): pass func play(sample_name): #get_node("AudioStreamPlayer").play(sample_name) get_node("effect").str.. 2022. 1. 8.
고도엔진 2D 슈팅게임 - 10 Power Up - 새로운 씬 생성 후, Area2D노드 추가 - 이름을 powerup으로 변경 후 powerup.tscn으로 저장 - Sprite노드 추가 후 이름을 sprite로 변경 - CollisionShape2D노드 추가 후 이름을 shape으로 변경 - New RectangleShape2D 지정 - Extends: (7,7)로 변경 - powerup노드에 powerup.gd스크립트 추가 - 상속씬으로부터 만들기 > powerup.tscn선택 - 이름을 powerup_armor로 변경하고 powerup_armor.tscn으로 저장 - 기존의 스크립트를 제거 - powerup_armor.gd스크립트 새로 추가 스크립트 수정 - 새로운 상속씬 생성 - powerup.tscn을 상속하여 powerup_laser.ts.. 2022. 1. 8.
고도엔진 2D 슈팅게임 - 9 HUD & Menu - ship.gd스크립트 수정 - armor_changed 시그널 추가 - set_armor함수에 emit_signal 추가 - Canvas2D노드 추가 후 hud로 이름 변경 - 하위에 sprite노드 추가 후 spr_armor로 이름 변경 - Sprite Texture에 armor.png파일 지정 - Centered는 해제하고, - 총 수평방향으로 5개의 프레임이 존재(Hframes:5) 인식 - 현재 프레임은 4번째 프레임을(Frame: 4)인식시켜준다. - spr_armor노드에 스크립트 추가 (Built-In-Script형태로 추가해준다.) - TextureFrame TextureRect노드를 추가 후 tex_score로 이름 변경 - Texture에 score.png 파일 추가 - 노드 사이즈.. 2022. 1. 8.
고도엔진 2D 슈팅게임 - 8 카메라 진동 - world씬에 camera2D노드 추가 - 카메라 스크립트 추가 수정 수정 수정 - 새로운 씬 생성하고 sprite노드를 추가하여 flash라고 이름을 바꿔 flash.tscn으로 저장한다. - Texture에 rectangle.png파일을 지정하고 - Centered를 해제한 뒤, 화면 사이즈보다 약간 크게 확장한다. - Modulate에 빨간색을 지정한다. - Z값을 15로 지정한다. - 하위노드로 Merge from Scene > flare.tscn > anim노드를 추가한다. - Make Sub-Resources Unique로 고유하게 변경한다. - 재생 길이를 0.3으로 변경하고 마지막 프레임도 0.3 위치에 놓는다. - 다시 0프레임에 위치시킨 후 스크립트를 추가한다. - 적용을 위해 sh.. 2022. 1. 8.
고도엔진 2D 슈팅게임 - 7 폭발 애니메이션 - 새로운 씬 생성 - sprite노드 추가 후 explosion 으로 변경 - Texture 지정 - Z 값을 5 정도로 상향 조정 - explosion에 하위노드로 Particles2D 노드 추가 - 이름을 p_smoke로 변경 - 각종 파라미터 적절히 변경 - Texture 를 클릭하여 smoke.png를 할당 - 추가 설정 - 추가 설정 - 추가 설정 - emmiting 기능으로 애니메이션 확인 - p_smoke 노드를 복사하여 p_flare노드 생성 - Texture에 flare.png파일을 할당하여 애니메이션 확인 - 노드 추가 > Merge from scene > flare.tscn 선택 - anim노드 선택 - 애니메이션이 영향받지 않도록 유니크하게 만들기 - length를 0.7초로 변경.. 2022. 1. 7.
고도엔진 2D 슈팅게임 - 6 아머, 파괴 수정 - 스크립트에 체력(armor) 변수를 설정 - "ship"그룹에 추가 - 체력이 0 이하로 가면 삭제되는 set_armor함수 추가 수정 - 스크립트에 체력(armor) 변수를 설정 - "enemy"그룹에 추가 - 체력이 0 이하로 가면 삭제되는 set_armor함수 추가 - enemy_kamikaze.tscn의 Armor값은 2로 설정 - enemy_clever.tscn의 Armor값은 6으로 설정 - laser_ship.tscn을 불러와서 기존의 laser.gd스크립트를 제거 - 새로운 스크립트 laser_ship.gd 생성 - 속도를 -350으로 설정 - "area_enter"이벤트 발생 시 "_on_area_enter"함수와 연결 - 접촉한 외부물체가 "enemy"이면 Armor를 -1 차.. 2022. 1. 7.
고도엔진 2D 슈팅게임 - 5 Enemy생성2 - Laser 씬을 상속하여 새로운 씬 생성 - New Inherited Scene... > laser.tscn - 노드 이름을 laser_enemy로 변경하고, laser_enemy.tscn으로 저장 - sprite에 enemy_laser.png 지정 - shape에 rectangleShape2D 지정 후 Edit - Extents: (4.5, 7) 지정 - vis_notifier의 Rect값 지정(x:-4.5, y:-7, w:9, h:14) - 속도 (0,150) 지정 - 아래방향으로 이동하는지 테스트 - 원점으로 복귀시켜 놓음 - 상속으로 새로운 씬 생성 > enemy.tscn 선택 - 노드 이름을 enemy_clever로 변경 - 다른 이름으로 저장하기 > enemy_clever.tscn으로 저장.. 2022. 1. 6.
고도엔진 2D 슈팅게임 - 4 Laser발사 - Flare 씬 생성 - sprite 노드 생성 후 이름을 flare로 변경 - flare 첫번째 이미지를 지정해줌 - 애니메이션 노드 추가 후 이름을 anim으로 변경, fade_out 애니메이션 추가 - 0초에서 flare 스프라이트의 Opacity 1로 하여 키를 추가 (Modulate의 Opacity속성을 255) - 0.1초에서 Opacity 0으로 하여 키를 추가 (Modulate의 Opacity속성을 0) - length를 0.1초로 변경 - flare sprite노드에 스크립트 추가(flare.gd) 시그널 "finished"은 "animation_finished"로 변경 - Laser 씬 생성(enemy용, player용 공통), Area2D 노드를 추가 후 laser로 변경 - Spr.. 2022. 1. 4.
고도엔진 2D 슈팅게임 - 3 Enemy생성1 2 타입의 Enemy 생성 Area2D 노드를 추가하여 enemy로 변경 - colisionShape2D 추가 > RectangleShape2D > Extents (16,16) 설정 - enemy 스크립트 추가 - y 속도 100으로 설정 - 화면을 넘어가면 삭제되도록 수정 - 첫번째 enemy: enemy_kamikaze - sprite에 enemy_kamikaze 이미지를 불러옴 - CollisionShape2D에서 Make Unique를 설정하고, 사이즈를 12,16으로 변경 - 속도를 350으로 설정 - enemy spawn - 자주 사용하는 함수를 utils.gd로 묶어서 스크립트 수정 # script: utils extends Node var main_node setget , _get_main.. 2022. 1. 4.
고도엔진 2D 슈팅게임 - 2 마우스 컨트롤과 배경 마우스 따라가는 동작 스크립팅 (수정..'2024.01.09) godot 버전 상승으로 get_pos()함수는 사용되지 않습니다. 그 외의 변경사항은 아래와 같습니다. - get_pos() --> get_global_pos() - set_pos() --> set_position() - view_size.width --> view_size.x extends Area2D func _ready(): set_process(true) pass # Replace with function body. func _process(delta): var motion = (get_global_mouse_position().x - get_global_position().x) * 0.2 translate(Vector2(motion.. 2022. 1. 4.
고도엔진 2D 슈팅게임 - 1 프로젝트 세팅과 Player 이런거 한번 만들어보겠습니다. (https://www.youtube.com/watch?v=Z9W6dlP-RB8&list=PLv3l-oZCXaqkUEqrLsKJIAhAxK_Im6Qew) 1. Project Settings 2022. 1. 3.
Godot 시작하기#4 - HUD Scene 및 마무리 1. HUD Scene 추가 HUD는 Head Up Display의 약자인데 게임의 요소와는 상관없는 UI 작성을 위한 부분입니다. Scene을 하나 추가한 뒤 CanvasLayer노드를 추가합니다. HUD에서 표시할 내용으로는 Score, "Game Over" 또는 "Get Ready!" 같은 문구, "Start" 버튼입니다. 즉 레이블과 버튼 요소가 필요합니다. 아래의 노드들을 CanvasLayer노드 하위에 자식노드로 추가해줍니다. ScoreLabel (Label) Message (Label) StartButton (Button) MessageTimer (Timer) 2. 폰트 폰트를 추가합니다. 경로는 인스펙터 창에서 Control > Theme Overrides > Fonts > 새 Dynami.. 2021. 12. 22.
Godot 시작하기#3 - Main Scene 1. Main Scene 생성 모든 요소들을 모을 Main Scene 을 생성합니다. 새 씬 생성후 "Node"라는 이름의 노드를 추가해줍니다. 그리고 "인스턴스화"아이콘을 클릭하여 Player.tscn을 불러옵니다. 그 외에는 자식노드 추가 기능에서 Timer 3개, Position2D 노드를 추가해주고, 각각의 이름을 아래와 같이 수정해줍니다. MobTimer - 가장자리에서 Mob이 생성되는 시간 통제 (0.5초) ScoreTimer - 매초마다 점수 증가시킴 (1.0초) StartTimer - 시작하기 전에 지연 시간 부여 (2.0초) StartPosition - Player의 시작 위치(240, 450) 2. Mob 생성 Main 노드가 Mob을 가장자리를 따라 랜덤한 위치에서 생성합니다. 이를.. 2021. 12. 22.
Godot 시작하기#2 - Mob Scene 1. 장애물 신 추가 웹 설명서를 그대로 번역하면 적 신으로 나오는데, 마음에 들지않아 장애물이라고 표현하겠습니다. 장애물에 해당하는 몹(Mob)들은 화면 가장자리 4군데에서 랜덤하게 생성되고, 직선방향으로 움직이도록 할 계획입니다. 우선 Player에서 했던 것과 마찬가지로 새 신(scene)을 추가하고 Rigidbody2D 노드를 추가합니다. 그리고 이름은 Mob으로 바꿔주겠습니다. 그리고 아래의 버튼(잠금열쇠 옆에있는거..)을 클릭하여, 추가되는 자식노드만 따로따로 선택되지 않도록 해 줍니다. 이어서, Gravity Scale을 0으로 해 줍니다. 즉, 중력에 영향을 받지 않게 해줍니다. 이 값이 0이 아닐경우, Mob들은 중력의 영향을 받도록 계산되고, 화면 아래로 떨어지게됩니다. 조금 아래로 내.. 2021. 12. 22.
Godot 시작하기#1 - 프로젝트 설정 및 Player Scene 1. 프로젝트 설정 프로젝트 > 프로젝트 설정을 클릭한 후, display > window메뉴로 가서 width480, height720으로 설정해줍니다. 그리고, Stretch로 내려가서 Mode: 2d, Aspect: keep으로 변경해줍니다. 2. Resource 폴더 추가 dodge_assets 파일은 링크 에서 다운받을 수 있습니다. Godot엔진 홈페이지의 Your First Game 챕터에서 찾을 수도 있습니다. 압축을 풀어서 생성된 프로젝트 폴더에 집어넣으면 아래와 같이 자동으로 프로젝트에 폴더가 추가됩니다. 3. Player 씬 추가 왼쪽 씬 탐색기에서 다른노드 > Area2D검색 >Area2D 를 선택합니다. 노드를 더블클릭하여 이름을 Player로 바꿔줍니다. 그리고 Player.ts.. 2021. 12. 22.
고도 엔진 횡스크롤 게임 예제 (Godot Platformer) - 3 1. Title screen제작 - User Interface(Control) 추가하고 이름을 MainScreen으로 변경합니다. - Background 추가 후 TextureRectangle로 변경, - Layout: Full Rect - 인스펙터에서 Expand: on, Stretch Mode: Tile 로 설정 - MainScreen Node에 Label 노드 추가(Title) ○ My First Godot Game : Text 변환 ○ Center Top: Layer 변경, Shift 누른채로 약간 아래로 변경 - VBoxContainer추가하여 이름을 Menu로 변경하고, 아래와 같이 버튼2개를 추가합니다. ○ Layout: Center ○ Button 2개 추가 및 텍스트 변경 ○ Button.. 2020. 1. 29.
고도 엔진 횡스크롤 게임 예제 (Godot Platformer) - 2 1. Coin 만들기 - new scene > Area2D(Coin) 노드추가, Coin Image추가 - CollisionShape2D추가, circle shape 선택 후 사이즈 조정합니다. - AnimationPlayer추가 (Objects폴더 생성 후 scene저장) - animation - new animation: bouncing - timeline 오른쪽에 시간을 1.8로 전체 애니메이션 시간을 설정 - timeline 오른쪽의 반복기능 on - 뷰포트의 rotation mask for inserting keys를 언체크함 - 뷰포트의 Translation mask for inserting keys만 체크함 - Coin 노드 선택 후 ins키나 뷰포트의 key를 누르면 애니메이션에 key가 .. 2020. 1. 29.
고도 엔진 횡스크롤 게임 예제 (Godot Platformer) -1 따라해야할 양이 많다보니 포스팅이 친절하지 못한점 양해바랍니다.^^;; 그럼 시작하겠습니다. 1. 프로젝트 세팅 - assets 다운로드(예제 소스 링크) - platformer폴더 생성 후 assets폴더를 복사해 넣습니다. - assets 폴더에 이미지 등 소스 추가 - src 폴더 추가 2. Player 생성 - kinematicbody2D 추가 - Player로 변경 - CollisionShape2D추가 ->Rectangle shape 설정 - Player 이미지를 끌어오면 자동으로 sprite node가 추가되며 이름은 player로 설정됨 - magnetic을 클릭하여 snap 활성화 - pixel snap을 활성화하여 맨 바닥이 0에 오도록 설정 - Collisionshape2D의 크기 조정.. 2020. 1. 29.
반응형