멋쟁이사자처럼 X 넥슨 MOD Suppoters Hackathon 4주차 2일 회고

Jiwon Lee·2022년 7월 26일
1

MOD x Supporters

목록 보기
13/23
post-thumbnail

2) 떨어지는 장애물 만들기

제일 먼저, 장애물이 떨어지게 하려면 중력을 가지도록 해야 함 !

장애물에 중력을 부여하는 원리

  1. 중력, 마찰 등 기본적인 물리를 담당하는 Component인 RigidbodyComponent를 장애물 Entity에 추가
  2. 기본 설정으로는 바닥까지 떨어져서 Tile과 만나면 그대로 멈추게 됨 → 다시 위로 respawn 되도록 설정 → Component 사용자 정의 필요

TrapFallingComponent

장애물이 특정 y좌표보다 아래로 떨어지게 될 경우 자신이 설정한 바닥의 y좌표+a로 이동하는 방식

→ x 좌표 및 떨어지는 간격을 math.random()을 사용해 랜덤하게 설정 !

TrapFallingComponent {
	Property:

	Function: 
		void OnUpdate( number delta ) {
			**local trap = self.Entity -- trap으로 사용되는 엔티티 자신
			
			-- 장애물이 특정 y좌표보다 아래로 떨어지게 될 경우 자신이 설정한 바닥의 y좌표+a로 이동 
			
			if trap.TransformComponent.Position.y <= -2.5 then
				trap.MovementComponent:SetPosition( Vector2(math.random(3, 10.6), 45) ) -- 난이도 조절을 위해 x 좌표를 랜덤으로 지정
				trap.RigidbodyComponent.Gravity = 0 -- 중력=0으로 두어 멈추도록 함
				wait( math.random(0, 3) ) -- 0~3초 간격으로 떨어지도록 설정
				trap.RigidbodyComponent.Gravity = 0.5
			end**
		}
	
	Entity Event Handler:
}
  • MovementComponent.Position → 엔티티의 위치 반환
  • MovementComponent:SetPosition → 엔티티의 위치 설정
  • RigidbodyComponent.Gravity → 엔티티에 가해지는 중력 값 ( 반환 및 설정 )

자동 생성

강의에서 배웠던 내용을 토대로 랜덤한 y위치로부터 생성 …

→ 근데 바닥에 자꾸 쌓이는데 왜지 ??? ;ㄷ;

profile
노는 게 제일 좋은데 공부는 하고 싶어요 😗

0개의 댓글