2012-03-14 5 views
7

正確なサイズにスプライトをスケールする最適な手法は何ですか? scaleプロパティは乗数ですが、スプライトが正確にXピクセル幅になるようにするには、簡単な方法がありますか?または、必要なサイズとスプライト実際にcontentsizeを使用して、必要なscale演算を計算するだけで済みますか?Scale CCSpriteから正確なサイズ

+0

、私はいつもあなたの提案どおりに進めてきた(scaleXプロパティとscaleYを計算します)、別の答えを探していない。私はこの質問をお気に入りに追加して、科学者が解答として掘り下げているものを見てみましょう。 – YvesLeBorg

+1

内部的には、cocos2dが 'scaleX'と' scaleY'の値を 'glScalef'のopenGL関数に送信するだけなので、新しいサイズと現在のサイズを使ってスケール乗数を計算することが唯一の方法です(あるいは、スプライトを描画するときです。 – Lukman

答えて

19

私はこの作品信じる:

-(void)resizeSprite:(CCSprite*)sprite toWidth:(float)width toHeight:(float)height { 
    sprite.scaleX = width/sprite.contentSize.width; 
    sprite.scaleY = height/sprite.contentSize.height; 
} 

あなたのゲームでそれを入れて、このように使用:正直なところ

[self resizeSprite:mySprite toWidth:350 toHeight:400]; 
0

scaleXとscaleYの2つのプロパティを使用できます。 たとえば、HPバーで使用します。

hpBarSprite.scaleX = hpCurrent/hpMax;

+0

私は最大/現在、右を意味すると思いますか? – johnbakers

+0

バーの場合、1.0は100%であるため、 '((1.0/max)* current)'にする必要があります。 – Voldemort

関連する問題