Programming (316) 썸네일형 리스트형 고도엔진 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 파일 추가 - 노드 사이즈.. 고도엔진 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.. 고도엔진 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.. 이전 1 ··· 10 11 12 13 14 15 16 ··· 40 다음