프로그래밍 공부
작성일
2024. 2. 26. 17:30
작성자
WDmil
728x90

파이어볼을 만든걸 손에서 들었을 때 활성화하고, 그걸 응용해서 같은 방식으로 동작하는 아이스볼 을 생성해보자.


FireBall 정리

우선 BPThorw_Skill과 Fireball을 분리해서, 내가 들고있는 무기의 정의가 FireBall인지 IceBall인지 확인하고,

 

해당 무기일경우의 IceBall과 FireBall로 파티클을 재정의해주어야 한다.

즉, ThrowSkill을 기준으로 FireBall과 IceBall이 만들어지며, 파이어볼의 파티클, 아이스볼의 파이클을 ThrowSkill에서 가져와 사용한다고 이해하면된다.

 

만약, FireBall자체를 스킬로 정의하고, 자체를 상속받아 사용하게 하여 객체관계를 좀 더 깔끔하게 정의할 수도 있을것이다.

 

FIreBall과 IceBall은 ThrowSkill에서 관리하는 것 이 아니라, 그냥 그 자체가 Weapon으로 생각하게 하는것이다.

 

그러나, 현재 정의는 ThrowSkill에서 FireBall과 IceBall을 관리하고 발사한다.


ThorwSkill의 beginPlay이다.

현재 BeginPlay의 상에서 구조체를 사용해서 class와 Paticle를 사용한다. 파티클은 해당 객체를 손에 들고 있을 때의 손에 나타날 파티클을 정의하고, 밑의 클래스는 투사체를 정의한다.

 

위와같이 set을 통해 관리해도 되고, 오히려 해당 구조체를 배열형태로 정의해서 미리 만들어놓은 뒤, 임의의 키를 입력헀을 때 무기를 바꿔들게 해도 된다.

Spell이벤트와 EndSpell이벤트는, 이전에 만들었던 다른 마법과 같은 방식으로 설계한다.

 

EndSpell시에 투사체가 날아가게 할 것이다.


Throw_Item

발사체 자체를 정의할 Throw_Item이다.

 

이 구조체를 상속받아 파이어볼과 아이스볼을 제작한다.


FireBall

fireBall의 객체이다.

투사체의 속도가 급격하게 증가하도록 정의하였고,

겹칠 시, Overlap의 폭발이 일어나도록 하였다.

 

이것을 데미지와 이펙트만 바꾸면 아이스볼이 투사체로 날아가게 만들 수 있다.


파이어볼

아이스볼

 

폭파 이펙트는 바꾸지 못했다.

728x90