프로젝트/탑뷰 슛팅게임 제작 (6) 썸네일형 리스트형 보스 몬스터 제작 전체 코드 보스몬스터 https://github.com/petemus/ShootingGame3D/blob/master/Source/ShootingGame3D/Enemy/BossEnemy.cpp SplineComponenthttps://github.com/petemus/ShootingGame3D/blob/master/Source/ShootingGame3D/InGameFunc/SplineActorComponent.cpp Spline 을 이용한 점프 공격일반 점프 공격 대신 미리 공격 위치를 알려주면서 점프 경로를 보여주어 플레이어가 대처 할 수 있는 패턴을 만들기 위해 Spline을 사용해 보았습니다.프로젝트가 끝나고 나서 깨달은 것이 있는데 SplineComponent 는 원래 제공하고 있으니SplineC.. 상점 및 플레이어, 세이브게임 상점의 버튼을 눌렀을 때 골드가 구매 가능한 만큼 가지고 있다면 골드를 사용하여 플레이어 스탯을 상승시키고, 업그레이드에 필요한 골드량을 증가 시킵니다. 1. 게임 인스턴스가 골드, 플레이어 업그레이드 스탯, 버프 구매 골드량 등을 관리합니다.2. 세이브 게임 클래스가 골드 , 플레이어 업그레이드 스탯, 버프 구매 골드량 을 저장할 변수를 가지고 있습니다.3. 시작 메뉴 모드가 저장 변수들을 업로드하여 게임 인스턴스에게 알려줍니다.4. 플레이어는 생성자에서 게임 인스턴스로부터 업로드된 스탯들을 받아 업그레이드 됩니다. 1. 게임 인스턴스가 골드, 플레이어 업그레이드 스탯, 버프 구매 골드량 등을 관리합니다. Save, Load 함수는 각각의 데이터들을 저장 불러오기 역할을 해줍니다. 2. 세이브.. 방 입장 및 클리어 이벤트 해당 구현은 제가 아닌 같은 팀원이 만들었습니다. 1. 방 입장 시 몬스터가 스폰됩니다.2. 몬스터를 전부 죽이면 다음 방으로 넘어갈 수 있도록 문이 열립니다. 실제로 문이 올라가는 역할을 하는 BP_Door 클래스.문들과 몬스터 스포너를 가지는 BP_Room 클래스가 있습니다. BP_Door 설명실제 문을 열고 닫는 역할을 합니다. BP_Room 설명 실제 몬스터 스폰 및 문과 관련 로직의 이벤트를 실행 시키는 클래스입니다.몬스터는 레벨에 미리 배치해두었고 Hidden 을 통해 몬스터를 숨겨놓고 플레이어가 방과 트리거가 일어나면 몬스터의 모습을 보이게 만듭니다. 몬스터 스포너와 문을 가지고 있습니다. Room 클래스의 BeginPlay 에서 몬스터들의 모습을 숨깁니다. Tick 에서 몬스터들이.. Lerp 를 이용한 포물선 투사체 구현 Lerp 는 선형 보간으로 보통 직선 운동의 움직임을 보입니다.Lerp 를 3번 사용해서 곡선 운동을 구현했습니다. 위는 언리얼 cpp 에서 Lerp 를 이용한 곡사 운동을 구현한 코드입니다. 투사체가 생성된 시간 / 전체 발사 시간 을 보간 값으로 하여 3번의 Lerp 를 이용하여 포물선 움직임을 만들었습니다. 이제 곡사 움직임을 구현한 Bullet 클래스를 상속받은 BP 클래스에서처음 타겟 위치와 포물선의 최고 높이 전체 발사 시간을 정해주어 투사체 발사 시마다 높이를 랜덤하게 설정합니다. 프로젝트 1차 프로젝트 1차 이 글은 지금까지 구현한 내용들을 보여주는 글 상점의 골드 사용 가능 및 저장. 버프 구매에 따른 캐릭터 능력치 업그레이드 기능을 만들었습니다. Normal, Speed, Tank 몬스터를 제작했습니다. Fixed 몬스터를 제작했습니다. 8방향으로 투사체를 쏘게 만들었습니다. Patrol 몬스터를 제작했습니다. Patrol1 은 플레이어를 향해 직사, Patrol2 는 플레이어를 향해 곡사 발사체를 쏩니다. 플레이어와 몬스터의 상호작용이 가능합니다. 투사체 및 몬스터의 공격에 데미지를 입고 플레이어의 공격에 몬스터가 데미지를 입습니다. 플레이어의 체력이 0이 되면 게임오버 UI가 나오며 시작 메뉴로 돌아갈 수 있습니다. Monster 몬스터 클래스. 몬스터가 캐릭터와 오버랩 되면 2초마다 데미지를 주도록 만들었습니다. 기본 따라다니는 몬스터 (NormalEnemy) 를 만들었습니다. 이제 따라다니는 유형의 몬스터들을 NormalEnemy 를 상속하여 만들것입니다. NormalEnemy 를 상속받은 SpeedEnemy, TankEnemy 를 만들었습니다.SpeedEnemy 는 체력과 크기, 공격력이 적지만 이동속도가 빠릅니다. TankEnemy 는 이동속도가 느리지만 체력과 크기, 공격력이 높습니다. 이전 1 다음