/////
Search
Duplicate

3주차

이번주 숙제 더블버퍼링까지 커밋로그를 하나하나씩 순차적으로 내 게임엔진에 적용시킨다.
1.
몬스터를 생성한다.
2.
몬스터는 좌우가 랜덤하게 움직이도록 만들어본다. (Random() 사용하면 됩니다) 2.5(총알 클래스를 만들어야겠죠?)
3.
플레이어가 스페이스 키를 누르면 총알이 나가게 만들어준다.
4.
몬스터와 총알이 부딪혀서 몬스터가 사라지면 된다.( 부딪히는걸 어떻게 판단할껀지 직접 고민해봐서 작성해본다. 인터넷검색하지 않기)

더블 버퍼링

더블 버퍼링이란 다음 화면을 렌더링할 때 기존 화면을 둔 상태로 뒤에서 다음 화면을 다 그린다음에 기존 화면과 다음 화면을 바꿔서 화면의 깜빡임을 제거하고 부드럽게 보이게 하는 방법이다.

Player 사격

1.
Bullet Class를 만든다
2.
Bullet은 Active 상태를 bool 형태로 가지고 있고 Active 상태라면 오른쪽으로 이동하게끔 설정
3.
Player가 Space 키를 누르면 Bullet이 생성되고 Active 상태로 수정.
4.
Player의 바로 오른쪽 옆에 생성하여 오른쪽으로 이동하게 됨.

몬스터와 총알의 충돌 감지 구상

가장 간단한 방법은 총알의 범위(lx,rx,ly,ry)와 몬스터의 범위(lx,rx,ly,ry)를 Application 상에서 쥐고 있다가 총알의 lx,rx,ly,ry가 몬스터의 범위인 lx<?<rx or ly<?<ry를 만족하면 그 때 몬스터 객체를 delete하면 된다. 다만 이건 Collider가 사각형일 때 이야기이고 Collider가 타원형 모양 혹은 곡선이면 좀 더 수학적인 계산이 필요하다. Collider 모양이 달라져도 각 도형들을 데카르트 좌표상으로 옮기고 두 도형의 접점이 존재하는지 확인해서 존재하면 충돌이라고 판정해도 좋을 것 같다.
EventHandler를 통해 충돌을 알려야 할지, app이 전체 GameObject 리스트를 들고 있으면서 각 GameObject간의 충돌을 파악해야할지 고민