2009-11-06 3 views
0

저는 한 장면에서 한 번에 움직이는 10-12 스프라이트가있는 게임을 개발 중이며 시뮬레이터가 느려질 수 있습니까? 내 게임에서 맨 위에 움직이는 스프라이트, 즉 인간이 뛰어 내리는 비행기를 클릭하면 그래서 6 번 또는 7 번 스프라이트가 6 번 또는 7 번 연속으로 클릭되면 속도가 느려집니다. 나는 아이폰에 대한 테스트를하지 않았지만 느린 다운 시뮬레이터를 사용했다. m 스케줄러를 사용하여 모든 이미지를 이동합니다. 그것은 영향을 미치나요?한 장면에서 스케줄러를 사용하여 많은 스프라이트를 움직일 수 있습니다.

답변

1

스프라이트가 많으면 시뮬레이터와 iPhone이 느려질 수 있습니다.

텍스처 버퍼를 많이 스왑해야하기 때문입니다. 이것은 값 비싼 작업입니다.

AtlasSprite를 대신 사용해보십시오. 그들은 훨씬 더 빠릅니다. 스프라이트가 다른 이미지를 사용하는 경우에도 하나의 텍스처에 넣은 다음 AtlasSpriteManager 및 AtlasSprite를 사용하여 이미지를 화면에 그립니다. 같은 Texture2D 객체 10 개 스프라이트가있는 경우

또한, 스케줄러로 사용 (하지만,이 고통을 최적화 할 수 있습니다 텍스처 버퍼를 교환하지 않고 렌더링되는 경우에만 가능합니다.)

일을 속도 그들을 움직여야한다.

+0

좋아, 고맙습니다. 고맙습니다. 나는 스케줄러를 사용하는 것이 coz일지도 모른다라고 생각했다. – amy

+0

텍스처 만 사용하여 스프라이트 이미지 변경 sp = giftBody-> data; sp.texture = [[TextureMgr sharedTextureMgr] addImage : [NSString stringWithFormat : @ "elf % d.png", k + 1]]; \t giftBody-> data = sp; 여기 giftbody 모양입니다. 그래서 그들은 같은 질감이 아닙니다. 하나의 texture2d 객체를 모두 사용할 수 있습니까? atlasSprites 사용 방법. 내가 그것에 대한 모든 설명을 찾을 수있는 링크를 제안 할 수 있습니다. – amy

+0

Google에서이 자습서를 보았습니다. http://johnehartzog.com/2009/05/using-cocos2d-atlasspritemanager/ 다른 튜토리얼이 많이 있습니다. 기본 사항은 다음과 같습니다. 하나의 Atlas 스프라이트 관리자, 많은 Atlas 스프라이트. 모든 작은 이미지를 하나의 큰 그림으로 배치합니다. 큰 이미지를 관리자로로드 한 다음 Atlas 스프라이트를 사용하여 개별적으로 또는 순차적으로 표시합니다. – nash