먼저 현재 맵에 새로운 컴포넌트를 추가해준다.
그리고 프로퍼티를 다음과 같이 추가한다.
magnus는 보스 캐릭터를 받아온다
smashPos는 날아오는 검기의 위치를 가져온다.
windpos는 날아오는 회오리의 위치를 가져온다.
beginplay함수에서 맵이 시작될 때 math.randomseed(os.time())으로 랜덤성을 한번 초기화 해주고
아래 날아오는 공격들의 위치를 초기화 해준다.
smashpos[1]은 1층으로 검기가 날아올 때 y위치를 초기화 해준것이다.
windPos는 y축으로 2층을 잡아먹기 때문에 1층과 2층 위치만을 초기화해주었다.
onupdate함수는 다음과 같다.
매그너스의 패턴이 발동 될 시 해당 폼이 true이면 _SpawnService:SpawnByModelId 를 통해 장애물을 소환한다.
_SpawnService:SpawnByModelId("model://6a00c44c-5c6a-4d79-b66f-83eedab7a1af","smash",Vector3(self.magnus.TransformComponent.Position.x - 2.0,self.smashPos[smashRandom],0),_EntityService:GetEntity("9e067ae9-9186-4a36-b0f8-0fc51be9e8c7"))
이 코드는 model://6a00c44c-5c6a-4d79-b66f-83eedab7a1af 라는 모델을(장애물을 미리 모델화 해야한다.)
"smash"라는 이름으로
Vector3(self.magnus.TransformComponent.Position.x - 2.0,self.smashPos[smashRandom],0)
x축은 매그너스기준으로 x축으로 -2에서, y축은 1층과 3층 중에 랜덤으로 소환할 위치를 지정해주고
_EntityService:GetEntity("9e067ae9-9186-4a36-b0f8-0fc51be9e8c7") 해당 맵에 소환한다.
해당 코드가 끝나면 매그너스의 폼을 false로 지정해주면 된다.
장애물을 모델화 한 것이다.
4개의 패턴이 발동되면 각각 BlackWind, attacksmash, windmil,slowAttack 모델이 생기게된다.
1. smash
smash모델은 다음 2개의 컴포넌트를 가진다.
smashmove컴포넌트는 다음과 같다.
Onupdate함수에서 매 틱마다 0.2만큼 x좌표를 이동하고 x좌표가 60(맵의 끝)을 넘어가면 더 이상 이동하지 않도록 한다.
그리고 아래 triggerEnter함수에서 만약 캐릭터와 장애물이 부딪혔을 시 캐릭터의 이동속도를 0.6으로 3초간 줄이며 캐릭터의 머리의에 느려지는 이미지를 소환한다.
smash_destroy함수는 장애물이 특정위치에 도달하면 삭제하도록 한다.
'MSW메이플월드' 카테고리의 다른 글
메이플월드 넉백식 맵 제작(1) (0) | 2022.12.26 |
---|---|
메이플월드 템플런식 맵 제작 - 보스이동 및 캐릭터 이동 (0) | 2022.12.26 |
메이플월드 템플런식 맵 제작 2. 보스몬스터 패턴 소환(2) (0) | 2022.12.26 |
메이플월드 템플런식 맵 제작 1. 보스몬스터 애니메이션 (0) | 2022.11.17 |
메이플월드 - 미니게임 랜덤 배치 (0) | 2022.11.17 |