2011-02-13 2 views
1

나는 현재 각 업데이트시 다수의 스프라이트에 대한 맞춤형 드로잉을 제공하는 간단한 2D 게임을 작성 중입니다. 즉 모든 스프라이트에 위임 한 게임보기가 있습니다. 업데이트 할 때마다 석영 렌더링 (포인트/라인 기반)을 수행합니다.하나의 UIVew에 여러개의 CALayers를 사용하여 성능 게인

약 50 개의 활성 객체가 렌더링 될 때까지 성능이 좋아졌지만 지금은 최적화하기 위해 속도가 느려지고 있습니다. 그렇게하기 위해 CALayer에 내 스프라이트를 미리 렌더링 한 다음 게임보기에 추가하기로 결정했습니다.

첫 번째 생각은 각 Sprite 인스턴스에 GameView의 view.layer 하위 레이어로 추가되는 CALayer를 부여하는 것이 었습니다. 이것은 여러 개의 CALayers를 가진 하나의 UIView (게임 스프라이트 당 하나)를 사용한다는 것을 의미합니다.

각 게임 스프라이트에 UIView를 사용하기로 결정하면 성능 손실은 거의 없습니까?

답변

1

UIView는 응답 체인의 일부이며 추가 오버 헤드가 추가됩니다. 나는 스프라이트에 대한 UIView를 시작했고 제스처는 느려졌다. 나는 CALayers와 달라 붙는 것이 좋습니다

1

알고있는 한, UIView은 약 CALayer 정도의 매우 가벼운 래퍼이므로 성능 손실이 너무 커야합니다. 하지만 스프라이트는 단순히 UIView이 아닌 CALayer의 인스턴스로 더 잘 표현 될 것이라고 생각합니다.

관련 문제