0
我發現在cocos2d Best Practices有一個建議,使用initWithTexture來初始化精靈子類,而不是在幾本書和教程中,我發現你也可以使用initWithSpriteFrameName。這是爲什麼?爲什麼Cocos2D編程指南建議使用initWithTexture?
我發現在cocos2d Best Practices有一個建議,使用initWithTexture來初始化精靈子類,而不是在幾本書和教程中,我發現你也可以使用initWithSpriteFrameName。這是爲什麼?爲什麼Cocos2D編程指南建議使用initWithTexture?
CCSprite
中的所有初始化方法都使用initWithTexture:rect
來創建精靈。例如,
-(id) initWithFile:(NSString*)filename
{
NSAssert(filename!=nil, @"Invalid filename for sprite");
CCTexture2D *texture = [[CCTextureCache sharedTextureCache] addImage: filename];
if(texture) {
CGRect rect = CGRectZero;
rect.size = texture.contentSize;
return [self initWithTexture:texture rect:rect];
}
[self release];
return nil;
}
其它功能(initWithFile
,initWithSpriteFrame
,initWithSpriteFrameName
,等等)也直接或間接調用initWithTexture:rect
。如果你的CCSprite
子類有任何特殊的初始化需要發生(因爲它表面上會,因爲你是繼承另一個類),在initWithTexture:rect
這樣做保證它將被運行。
我想也做initWithSpriteFrame或那些其他功能將更正? – mm24