방금 Java로 Pong 게임을 만들었지 만 FPS 작동 방식에 대해 몇 가지 질문이 있습니다. 현재 게임은 컴퓨터가 처리 할 수있는 최대한 빨리 실행되며, 빠른 컴퓨터에서 게임을 실행하면 게임 속도가 평소보다 빠릅니다. 나는 너무 빨리 실행에서 게임을 방지하기 위해 타이머를 추가하여이 문제를 해결 :Java - FPS가 제대로 작동하도록하십시오.
timer = new Timer(5, this);
timer.start();
그러나, 타이머의, FPS 상관없이 컴퓨터가 얼마나 빨리 특정 제한을 통해 갈 수 없기 때문에. FPS가 떨어지면 프로그램을 느리게하는 대신 실제 컴퓨터 게임 에서처럼 뒤쳐지기를 원합니다. 어떻게해야합니까? 나는 프로그램이 느려지는 대신에 FPS가 떨어지도록 게임을 일정한 속도로 움직이고 싶다.
내 FPS 카운터는 현재 다음과 같습니다 : 내 질문에 대한 불분명 나는 경우
가if(System.currentTimeMillis() - time >= 1000){
time = System.currentTimeMillis();
fps = newfps;
newfps = 0;
}
else{
newfps++;
}
g.setFont(new Font("Arial", Font.BOLD, 25));
g.drawString(fps + "", 5, 22);
을 가르쳐주세요.
"뒤떨어 짐"이란 무엇을 의미합니까? 게임이 실행되는 것보다 드로잉이 느리게 실행되기를 원하십니까? – Igor
어떤 이유로 FPS가 떨어지면 프로그램 전체가 느려지는 대신 프레임을 건너 뛰기를 원합니다. 프로그램이 느려지거나 너무 빨리 실행되는 것을 막고 싶습니다. – enheldel
FPS는 결국 디스플레이 하드웨어에 의해 제한 될 것입니다. 게임에서 VSynch를 구현하여 GPU 및 모니터에 최적의 속도로 데이터를 렌더링하십시오. 또한 이중 버퍼링을 사용하는지 확인하십시오. https://docs.oracle.com/javase/tutorial/extra/fullscreen/doublebuf.html –