Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocos2d iphone 将CCSprite缩放到精确大小_Cocos2d Iphone - Fatal编程技术网

Cocos2d iphone 将CCSprite缩放到精确大小

Cocos2d iphone 将CCSprite缩放到精确大小,cocos2d-iphone,Cocos2d Iphone,将精灵缩放到精确大小的最佳技术是什么。“缩放”属性是一个乘数,但如果您希望精灵的宽度正好为X像素,有没有简单的技术?或者,是否只需要使用所需的大小和精灵实际的contentsize来计算必要的scale操作?您可以使用这两个属性:scaleX和scaleY。 例如,在HP工具栏中使用 hpBarSprite.scaleX=hpCurrent/hpMax 我相信这是可行的: -(void)resizeSprite:(CCSprite*)sprite toWidth:(float)width toH

将精灵缩放到精确大小的最佳技术是什么。“缩放”属性是一个乘数,但如果您希望精灵的宽度正好为X像素,有没有简单的技术?或者,是否只需要使用所需的大小和精灵实际的
contentsize
来计算必要的
scale
操作?

您可以使用这两个属性:scaleX和scaleY。 例如,在HP工具栏中使用

hpBarSprite.scaleX=hpCurrent/hpMax

我相信这是可行的:

-(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];

老实说,我一直按照你的建议(计算scaleX和scaleY)进行,而不是寻找另一个答案。我只想把这个问题作为我的最爱,看看科学家们找到了什么答案。使用新大小和当前大小计算比例乘数是唯一的方法(或者你总是可以为此创建一个方法),因为在内部,当绘制精灵时,cocos2d只需将
scaleX
scaleY
值发送到
glScalef
openGL函数。对于条形图,它应该是
((1.0/max)*current)
,因为1.0是100%。