마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

SurfaceView 를 사용하여 게임 을 제작중인데 기기마다 프레임이 다른거같아서 질문드립니다.

0 추천
처음에 기기 겔럭시 s3로 테스트를 하다가 테블릿 s5 로 테스트를 하는 도중에 발견했는데요.

각각의 기기마다 프레임이 다르게 나타나네요 물론 이동은 픽셀로 해서 각 기기 해상도 마다 차이가 있으니 이  문제점은

파악했는데

그외에 Thread 딜레이 지연이 각 기기마다 다른것같습니다.

 

각기기마다 프레임 이 같은 방식으로 구현하려면 보통 어떤 식으로 구현을 하는지 또

픽셀 단위로 하여서 케릭터 이동이나 그런부분들도 다른기기와 같은 거리를 이동하게 하는방법이 어떤식으로 구현되는지 질문드립니다.
CJ여비 (5,730 포인트) 님이 2014년 12월 9일 질문

1개의 답변

+1 추천
 
채택된 답변
double t = 0.0;
double dt = 0.01;
 
double currentTime = hires_time_in_seconds();
double accumulator = 0.0;
 
State previous;
State current;
 
while ( !quit )
{
    double newTime = time();
    double frameTime = newTime - currentTime;
    if ( frameTime > 0.25 )
        frameTime = 0.25;
    currentTime = newTime;
 
    accumulator += frameTime;
 
    while ( accumulator >= dt )
    {
        previousState = currentState;
        integrate( currentState, t, dt );
        t += dt;
        accumulator -= dt;
    }
 
    const double alpha = accumulator / dt;
 
    State state = currentState * alpha + 
        previousState * ( 1.0 - alpha );
 
    render( state );
}
 
 
목표 프레임을 두고 30프레임/60프레임 등
시간에 동기하는거져
그래야 단말기마다 다른 스피드라도 똑같이 동작을 하겠지여
 
 
doridori2013@nate.com
익명사용자 님이 2014년 12월 9일 답변
CJ여비님이 2014년 12월 18일 채택됨
...