안드로이드 개발 질문/답변
(글 수 45,052)
void CDefenseView::OnDraw(CDC* /*pDC*/)
{
CDefenseDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: 여기에 원시 데이터에 대한 그리기 코드를 추가합니다.
// 먼저 버퍼를 초기화 한다.
::glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
//RenderScene 함수를 호출한다.
RenderScene();// 업데이트 내용 들어있는 함수
//렌더링 파이프라인을 열어 실제로 화면상에 그린다.
::glFinish();
//만약 더블 버퍼링이 사용된다면 뒤 버퍼의 내용을 앞 버퍼와 바꾼다.
::SwapBuffers( m_pDC->GetSafeHdc() );
}
void CDefenseView::RenderScene(void)
{
randomValue = rand() % 100;
SetRandomValue(randomValue);
GameRender();
SetTimer(0, 1/60/1000, NULL);
}C언어 에서 이렇게 만든 구문이 있는데요`ㅡ`;;
자바에서 아래와 같이 코딩을 햇을경우
실행중에 계속 렉이 걸리는것 처럼 툭툭 끊기면서 화면에 출력이 되는데
어떤 식으로 해결을 해야할지 설명좀 부탁드리겠습니다ㅠㅠ
public void onDrawFrame(GL10 gl)
{
// TODO Auto-generated method stub
//검은색으로 화면 지우기
gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
//보이는 위치에 모델 놓기
gl.glMatrixMode(GL10.GL_MODELVIEW);
gl.glLoadIdentity();
gl.glTranslatef(0, 0, -1.0f);
//그 밖의 그리기 명령어....
RenderTimer += System.currentTimeMillis();
if( RenderTimer >= 1/60/1000 )
{
RenderScene(gl);
RenderTimer = 0;
}
}
public void RenderScene(GL10 gl)
{
randomValue = random.nextInt() % 100;
cGameMain.SetRandomValue(randomValue);
cGameMain.GameRender(gl);
}



현재시간을 계속 누적해서 어떻게 하고 싶으신건지 궁금하구요...
RenderTimer >= 1/60/1000
이 식은 항상 참이지 않을까요?
1/60/1000 값이 0이 나올테니까요... RenderTimer가 0 이상인것은 아무리봐도 확실해 보이구요...
그렇다면 매번 그린다는 얘긴데...