2014-06-06 1 views
0

나는 cocos2d-x 3.1을 사용하여 platformer-runner 게임을 만들었습니다. 이 게임에서는 화면이 무한히 스크롤되고 플레이어의 장애물이 앞에 표시되며 플레이어는 장애물을 피하기 위해 점프 할 수 있습니다.안드로이드에서 스프라이트가 무작위로 깜박임

나는 Windows에서 게임을 개발했고 SpriteBatchNode - 단지 단순한 Sprites 및 입자 효과를 사용하지 않았습니다. 창문에서는 괜찮 았지만 안드로이드에 을 포팅했을 때 크고 작은, 움직이고 안락한 스프라이트 중 일부는 임의로 깜박이기 시작했습니다. 처음에는 무작위로 변경되는 Z 순서라고 생각했지만 대부분의 스프라이트를 화면에서 제거하고 깜박임을 보았습니다. 흥미롭게도 깜박이는 스프라이트 사이에는 공통적 인 속성을 찾을 수 없었지만 항상 깜박 거리는 것들과 깜박 거리지 않는 것들 (정상적인 동작)은 항상 괜찮습니다.

깜박이는 모든 스프라이트에 SpriteBatchNode을 사용하여이 불쾌한 상황을 없앨 수있었습니다. 그러나 무슨 일이 일어나고 있는지, 그 이유는 무엇인지 이해할 수 없었습니다. 이런 종류의 행동의 원인이 될 수있는 가정이 있습니까?

입자 효과를 자식으로 추가 할 수 있으려면 여전히 간단한 Sprite을 사용해야합니다. SpriteBatchNodesSprite은 다음과 같이 과 같이 SpriteBatchNodes을 사용하여 생성 할 수 없습니다.

죄송합니다. 일부 코드를 공유하지 않습니다. 나는 뭘 공유 해야할지 모르겠다. 프로젝트는 거대하다. 하지만 몇 가지 구체적인 부품이 필요한 경우 물론 공유 할 수 있습니다.

+0

다른 Android 하드웨어를 사용해 보셨나요? 'SpriteBatchNode'가 정말 도움이 될 것입니다. Cocos2d-x 포럼에는 SpriteBatchNode 및 Android에 대한 최근 토론이 있습니다. – GameDeveloper

+0

@GameDeveloper "SpriteBatchNode를 사용하여이 불쾌한 상황을 없앨 수있었습니다." SpriteBatchNode와 Android에 대한 최근 토론에 대한 링크를 원했습니다. – Narek

답변

1

@GameDeveloper 마침내 나는 임의로 깜박 거리는 문제를 재현 할 수있었습니다. 내가 이해하는 바와 같이 그것은 Z 순서의 문제이다. 나는 다음과 같은 방식으로 그것을 재현했다. 나는 비어있는 스프라이트를 만들고 그 스프라이트에 같은 이미지를 만들고 추가합니다. 화면의 탭에서 동일한 위치에 스프라이트를 하나 더 추가합니다. 16 번째 탭 이후에 각 탭은 이미 추가 된 스프라이트의 Z 순서 중 일부를 변경합니다. 문제는 각 스프라이트를 추가 할 때 더 높은 Z 순서를 지정하지 않는다는 것입니다. 하지만 어떤 종류의 마법 번호가 16인지 이해할 수 없습니다. BTW 나는 또한 마지막으로 추가 된 스프라이트를 제거하는 기능을 실행 취소했습니다. 16 스프라이트를 넘지 않도록 실행 취소하면 괜찮습니다. 다시 16을 초과하면 Z 순서 무작위 화가 시작됩니다.

관련 문제