저는 ARC와 함께 작동 할 수 있도록 마스터 브랜치에 있습니다.Cocos2d 스케일링 스프라이트가 아티팩트를 발생시킵니다.
사용자가 스프라이트에 닿으면 스프라이트가 1.1 배로 확장되는 방법을 구현했습니다. 여러 건드린 터치는 서로의 위에 구축 된 여러 개의 스케일링 동작을 대기열에 넣습니다. 때때로 스프라이트의 작은 버전이 크기가 조정 된 버전 위에 표시되는 이상한 유물을 얻습니다.
더 많은 배경 :
여기 스크린 샷입니다 내가 사용하는, 그래서 내가 텍스처 아틀라스를 사용하고 있습니다 :
sprite = [super spriteWithSpriteFrameName:anObject.filename];
가 스프라이트를 초기화 할 수 있습니다. 이것은 OpenGL/cocos2d의 버그입니까? 이 유물을 멈추는 방법에 대한 조언이 있으십니까?
EDIT : 저는 CCSprite를 서브 클래스하고 있지만, 스프라이트의 인스턴스가 하나 밖에 없다고 말할 수 있습니다. (super에 대한 호출은 클래스 메소드에 있습니다.) 기본적으로 사용자는 스프라이트가 수행 할 동작 목록을 정의합니다. 작업 목록은 사용이 중단 될 수 있습니다
[self stopAllActions]
내가 했어 조치를 문제없이 CCMoveBy 및 CCRotateBy의 서브 클래스를 사용하여. 이 아티팩트를 일으키는 CCScaleBy의 가장 최근 서브 클래스입니다. 이러한 액션의 하위 클래스에서 액션에서 아무 것도 변경하지 않고 특정 변수를 추적하여 인터럽트 이후에 작업을 올바르게 다시 시작할 수 있습니다.
왜 슈퍼를 사용하고 있습니까? 그냥 [CCSprite spriteWithSpriteFrameName : name];이 아니어야합니다. 나는 혼란스러워. – tallen11