저는 플레이어가 렌즈 (예 : 돋보기)를 통해 비행기 (예 : 벽)를 볼 수있게해야하는 게임을하고 있습니다. 게임은 iPhone에서 실행되므로 내 선택은 Core Animation 또는 OpenGL ES입니다.2D 장면에서 "돋보기"를 만드는 가장 좋은 방법은 무엇입니까?
내가 아직 시도하지 않은 첫 번째 아이디어는 Core Animation을 사용하는 것입니다.
- 벽과 개체를 CALayers를 사용하여 만듭니다.
- CALayer의
renderInContext:
메서드를 사용하여 벽의 이미지를 배경 레이어로 만듭니다. - 이미지를 렌즈 모양으로 자르고 크기를 조정 한 다음 배경 위에 그립니다.
- 렌즈 프레임과 "반짝이는 유리"레이어를 그 위에 모두 그립니다.
참고 :
- 나는 어쩌면 OpenGL을 함께 할 수있는 더 나은 방법이, 더 많은 OpenGL을보다 더 코어 애니메이션에 익숙한입니다. (제발 말해!)
- 보기에 첨부되지 않은 CALayers를 사용하는 경우 모든 애니메이션을 직접 관리해야합니까? 아니면 수동으로 실행할 수있는 간단한 방법이 있습니까?
- 3D 퍼스펙티브는 중요하지 않습니다. 나는 단지 평면 벽을 확대하고있다.
- 위의 모든 작업을 원활하게 수행하기에는 너무 느리다는 것에 우려하고 있습니다.
이 글을 쓰려면 많은 코드를 작성하기 전에 질문에 위의 계획에서 함정이 보이거나 더 쉬운 방법을 권장 할 수 있습니까?
CA는 OGL보다 훨씬 느립니다. 진도는 실제로 느려집니다. – lajos
어떻게 당신의 인물을 얻었습니까? 원시 이미지 합성의 측면에서, 그건 내 경험이 아닙니다. 병목 현상은 이미지를 래스터 화하는 데 소요되는 시간입니다. –
나는 CALayers와 UIView의 애니메이션을 테스트했다. 어떤 이유로 UIViews 훨씬 빨라졌습니다. – lajos