클래스에서 사용할 모든 이미지가있는 아틀라스를 만들었습니다. 이 이미지에서 만든 스프라이트 있었다면, 나는 전체 CCSprite 크기를 충당하기 위해 스트레칭하고 1x1 픽셀 이미지입니다 "white.png"Cocos2D 2.0 - CCSprite의 사각형 변경/스프라이트 늘이기
mySprite = [CCSprite spriteWithFile:@"white.png" rect:frame];
처럼 만들 것이라고는 RECT에 의해 정의된다 : 프레임 그 API에.
그러나 I/O와 메모리를 최적화하기 위해
, 나는지도 책에 white.png 넣어 내 생각은mySprite = [CCSprite spriteWithSpriteFrameName:@"white.png"];
를 사용하여 만드는 것이었다 그러나 이것은 1x1 픽셀 스프라이트를 생성합니다. 그래서, 내 생각은 내가이
mySprite = [CCSprite spriteWithSpriteFrameName:@"white.png"];
[mySprite resizeTo:frame.size];
과의 1x1 스프라이트는 내가 원하는 크기를 충당하기 위해 뻗어 것을 할 수있는이 라인
@implementation CCSprite (CCSprite_Resize)
-(void)resizeTo:(CGSize) theSize
{
CGFloat newWidth = theSize.width;
CGFloat newHeight = theSize.height;
float startWidth = self.contentSize.width;
float startHeight = self.contentSize.height;
float newScaleX = newWidth/startWidth;
float newScaleY = newHeight/startHeight;
self.scaleX = newScaleX;
self.scaleY = newScaleY;
}
와 CCSprite를 확장하는 카테고리를 만드는 것이 었습니다.
문제는 이것이 작동하지 않는다는 것입니다.
실마리가 있습니까? 감사.
고마워,하지만이 경우에는 CCSprite에서해야한다. 왜냐하면 모든 것은 스프라이트가되어야하는 CCSprite 파생 클래스에서 비롯된 것이기 때문이다. 크기가 0이 아닙니다. – SpaceDog
및 mySprite 초기화 후 spriteFrame이 nil이 아닌가요? – Morion
아니요, 스프라이트는 여전히 1x1 픽셀입니다. 이게 버그일까요? (프레임 캐시에서 스프라이트를 스케일링하지 않습니까?) – SpaceDog