cocoa2d 등을 사용하지 않는 경우 수동으로 코딩해야한다면 프레임 속도를 어떻게 조절할 수 있습니까?게임 프레임 워크를 사용하지 않을 때 페이지 프레임 타이밍을 어떻게 처리합니까?
즉 초당 50 프레임에서 작동하는 것을 원하는 경우는 (또는 업계 가장 좋은 방법은 무엇이든?)
cocoa2d 등을 사용하지 않는 경우 수동으로 코딩해야한다면 프레임 속도를 어떻게 조절할 수 있습니까?게임 프레임 워크를 사용하지 않을 때 페이지 프레임 타이밍을 어떻게 처리합니까?
즉 초당 50 프레임에서 작동하는 것을 원하는 경우는 (또는 업계 가장 좋은 방법은 무엇이든?)
사용 CADisplayLink 모든 프레임에서 호출하세요. 최대 60 FPS입니다. 코드가 너무 많은 작업을하면 덜 자주 호출되며 UI는 40FPS 이하로 느려집니다.
NSTimers를 예약하는 대신 다른 문제가 있습니다. 런 루프가 타이머를 정시에 호출 할 준비가되지 않은 경우 통화가 건너 뛸 수 있으므로 프레임 속도가 보장되지 않습니다. 사과의 문서
에서
항상 복되는 타이머 일정 실제 발사 시간에 반대 자체가 예정된 발사 시간을 기준으로. 타이머가 예를 들어, 는 그 이후 및 매 5 초는 예정된 발사 시간은 항상 실제 발사 시간이 지연됩니다 경우에도, 원래 오초 시간 간격에 을 떨어질 특정 시간에 발사 예정 . 점화 시간이 인 경우, 이상의 예정 점포 시간이 지나면 타이머는 시간 동안 한 번만 실행됩니다. 타이머는 미래의 다음 발사 시간에 대해 발사 후 일정이 재조정됩니다.