2015-09-20 128 views
1

我想設置背景圖片的CCButton,並確保它伸展或最小化到CCButton的確切大小:如何設置固定的背景圖像CCButton

-(void)setBackgroundSpriteFrame: (NSString*)spriteFrameFileName 
{ 
    NSString* fullFileName = [NSString stringWithFormat:@"%@.png", spriteFrameFileName]; 
    CCSpriteFrame *spriteFrame = [CCSpriteFrame frameWithImageNamed:fullFileName]; 
    [super setBackgroundSpriteFrame:spriteFrame forState:CCControlStateNormal]; 
    double scaleValue = self.contentSize.height/spriteFrame.rect.size.height; 
    [self.background setScale:scaleValue]; 
    self.fileName = spriteFrameFileName; 
} 

這個方法裏面駐留一個從CCButton繼承的類。

問題是我看到背景圖像,但它被擠壓在一個奇怪的方式(見圖),並沒有最小化\拉伸到按鈕的大小。

請注意,圖像和按鈕是正方形,因此不需要單獨縮放X \ Y,並且還要注意,CCButton是使用SprtieBuilder而不是代碼生成的。

'古怪的樣子':
The square image got a weird squeezed look
原始的樣子:
Original image

感謝

+0

不能判斷'怪異'...你能展示實際的背景紋理嗎?我假設上面的圖片是呈現的CCButton。 – YvesLeBorg

回答

1

謝謝 'YvesLeBorg' 試圖幫助,我設法解決這個問題。

我發佈了幫助我的代碼。 希望它能幫助別人。

NSString* fullFileName = [NSString stringWithFormat:@"%@.png", spriteFrameFileName]; 
CCTexture *texture = [CCTexture textureWithFile:fullFileName]; 
texture.contentScale = 2.0; 
[super setBackgroundSpriteFrame:[texture createSpriteFrame] forState:CCControlStateNormal]; 
[self setScale:0.40]; 
self.fileName = spriteFrameFileName; 
0

沒有足夠的聲望發表評論,請原諒我來寫一個答案吧。

當我遇到同樣的問題時,我在cocos2d論壇上找到了一個網絡解決方案(無鏈接,sry)。總結它 - 沒有必要單獨縮放圖像。但是,一個必須遵循2個規則:

1)圖像應至少比同尺寸的元素(CCButton)和

2)不要忘記明確設置forState:CCControlStateNormal

的使用contentScale就像你所做的那樣,在這種情況下不需要。