안드로이드 스터디 모임 - OpenGL
(글 수 62)
안녕하세요 , 안드로이드용 간단한 앱을 하나 제작중인데 ,
현재 openGL 을 이용해서 , 오브젝트 몇몇 가지들을 맵에 띄워 보았습니다.
유저(카메라의 좌표가 되겠죠?) 가 이동함에 따라서 , 특정 오브젝트에 가까워 지면
사운드 파일 하나를 불러와서 지속적으로 재생시켜 주고싶은데요, (멀어지면 다시 재생 꺼지게끔 ... )
제 질문은 ...
1. 카메라의 좌표와 오브젝트의 좌표는 3차원 코디네이트인데 , 이걸 거리를 직접 계산 해야하나요 ? 아니면 편한 함수 같은것이 있나요 ?
이게 지금 살짝 골치아픈게 ... 카메라가 상하좌우 전진후진 이렇게 되게 되어있는데 , 각각 입력받아서 움직일떄마다 계속 체크를 해줘야하니
각각의 함수마다 해 주어야 하나 싶어서요
2. onDraw 에서 구현해놔도 괜찮을까요 ? 이미 재생된 사운드 파일 재생이 끝나기 전에 막 재생될것 같은데 ...
1.
객체간 충돌을 판별하는 알고리즘은 여러가지가 있습니다.
가장쉬운 것은 물체를 구로 인식하게 하는 방법입니다. 즉, 두 물체의 중심간 3차원 거리의 합이 두 물체의 반지름의 합보다 작으면 충돌로 판별하는 것입니다. 검색해보시면 많이 나올거에요.
2. onDraw보다는 update 함수를 만드시고, 각 객체의 상태(위치, 속도, 방향, 에너지 등..)를 갱신하고 효과음 등을 플레이 하게 하는 것이 좋습니다. onDraw에서는 update함수에서 갱신된 상태들의 정보로 그리기만 하게 하는 것이 좋습니다. (sw구조나, openGL pipeline 성능면에서..)