Programming/Godot (31) 썸네일형 리스트형 고도엔진 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초로 변경.. 고도엔진 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 차.. 고도엔진 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으로 저장.. 고도엔진 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.. 고도엔진 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.. 고도엔진 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.. 고도엔진 2D 슈팅게임 - 1 프로젝트 세팅과 Player 이런거 한번 만들어보겠습니다. (https://www.youtube.com/watch?v=Z9W6dlP-RB8&list=PLv3l-oZCXaqkUEqrLsKJIAhAxK_Im6Qew) 1. Project Settings 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.. 이전 1 2 3 4 다음