0
我正在製作一款遊戲,它使用大像素藝術作爲圖形。因爲我必須爲每個精靈聲明sprite.scale = 2;
和[sprite.texture setAliasTexParameters];
,所以我決定做一個工廠方法。我得到了它的工作,但由於某種原因,它在某些情況下會使程序崩潰。我的工廠方法不能按預期工作
這是.m文件我的工廠代碼:
@implementation pixelSprite
+ (id) spriteFromFrame:(NSString *)frame setScale:(BOOL)scale resetAnchor:(BOOL)reset {
CCSprite *sprite = [CCSprite spriteWithSpriteFrameName:frame];
[sprite.texture setAliasTexParameters];
if (scale) {sprite.scale = 2;}
if (reset) {sprite.anchorPoint = ccp(0, 0);}
return sprite;
}
@end
這從.h文件中:
@interface pixelSprite : CCSprite {}
+ (id)spriteFromFrame:(NSString*)frame setScale:(BOOL)scale resetAnchor:(BOOL)reset;
@end
我用它製成的按鍵精靈這樣的,它完美的作品。
CCSprite *spriteCampaign1 = [pixelSprite spriteFromFrame:@"buttonCampaign1.png" setScale:FALSE resetAnchor:FALSE];
出於某種原因,例如,這會使程序崩潰:
CCSprite *bg3 = [pixelSprite spriteFromFrame:@"bgMenu3.png" setScale:TRUE resetAnchor:FALSE];
//bg3.anchorPoint = ccp(0.5, 0);
bg3.position = ccp(240, 210);
[self addChild:bg3 z:1];
我沒有包括在這些.m文件我想用精靈工廠.h文件。
謝謝。錯誤是我試圖使用相同的方法來使用spritesheet中的單個圖像和幀。真的是虛假的錯誤。 – Liuhu 2012-03-05 14:53:58