2011-12-17 5 views
1

NSTimer를 기본으로 40fps로 메인 루프를 호출하는 게임을 만들고 있는데, 최신 iPod touch에서도 실행하면 눈에 띄는 양이 줄어 듭니다. . 멀티 쓰레딩을 사용하여 프레임 속도를 줄이지 않고 지연을 줄이거 나 복잡한 계산을 할 때 UI가 반응하도록 멀티 쓰레딩을 할 수 있습니까? 그리고 그것이 사용될 수 있다면, 구현 방법에 대한 자습서를 가르쳐 주시겠습니까?게임에서 멀티 스레딩이 사용되는 방법 (iOS)

답변

5

일반적으로 시간이 많이 소요되는 작업을 기본 스레드에서 제거하는 것이 좋습니다. 기본 스레드는 응용 프로그램의 사용자 인터페이스를 처리하고 차단하면 표준 UI 요소가 업데이트되지 않도록하고 등록하는 이벤트를 만지지 않도록합니다. 게임 (물리학, 인공 지능 등)의 뒷 배경에서 처리되는 처리량에 따라 중요한 부분을 배경 스레드로 옮겨야 할 수도 있습니다.

멀티 스레딩은 간단한 주제 아니라, 애플은 그랜드 센트럴 파견을 통해이 훨씬 쉽게했다, 그래서 나는 매우

애플이있다 응용 프로그램에서 멀티 스레딩을 달성하기위한이 다른 기술에 대해 설명 자신의 Concurrency Programming Guide을 읽어 보시기 바랍니다 iOS 용 OpenGL ES 프로그래밍 안내서에서 "Concurrency and OpenGL ES"이라는 제목의 전체 섹션 여기서는 멀티 스레딩을 사용하는 OpenGL ES 응용 프로그램의 성능을 향상시키기위한 몇 가지 시나리오를 설명합니다.

-1

UIKIT로 높은 FPS가 필요한 게임을 만들지 마십시오. 2D 게임 인 경우 Quartz 또는 COCOS2D (OpenGL 기반)로 이동해야하고 3D가 @Ajeet 인 경우 사용자 OpenGL을 사용하거나 높은 FPS를 위해 iOS 용 3D 엔진을 찾아야합니다.

+0

여기에 cocos2d 링크가 있습니다. http://www.cocos2d-iphone.org/ – samfisher

+0

그래서 기본적으로 엔진이 없으면 게임을 만들 수 없다고 말하는 것입니까? – Greg

+0

불행히도, 당신은 나를 잘못 잡았습니다. 나는 어떤 식 으로든 그것을 언급하지 않았다. 나는이 일을 초기에 혼자 했어. 나는 명시 적으로 언급했다 : "높은 FPS를 요구하는 게임". 이것은 높은 FPS (초당 프레임 수/프레임 속도)와 많은 애니메이션을 기대한다면 확실히 의미합니다. – samfisher

관련 문제