这就是问题xD
在iphone的cocos2d中给出一个CCSprite的实例,我可以用什么方法来获取图像的宽度和高度?
答案 0 :(得分:53)
CCSprite类有一个边界框属性,它是一个CGRect:
CCSprite *sprite = [CCSprite spriteWithFile: @"file.png"];
int width = [sprite boundingBox].size.width;
我在我的CCSprite子类中添加了宽度和高度方法。
-(CGFloat) width
{
return [self boundingBox].size.width;
}
-(CGFloat) height
{
return [self boundingBox].size.height;
}
答案 1 :(得分:38)
原始宽度:
sprite.contentSize.width
原始高度:
sprite.contentSize.height
当前宽度:
sprite.contentSize.width * sprite.scaleX
当前身高:
sprite.contentSize.height * sprite.scaleY
答案 2 :(得分:0)
IN cocos2d-x
sprite->boundingBox().size.width;
sprite->boundingBox().size.height;
答案 3 :(得分:0)
在cocos2d-x v3.x中, Node 类(即 Sprite 的超类)中不推荐使用boundingBox
。请改用以下代码:
auto spriteWidth = sprite->getTextureRect().size.width;
auto spriteHeight = sprite->getTextureRect().size.height;
或
auto spriteWidth = sprite->getContentSize().width;
auto spriteHeight = sprite->getContentSize().height;
答案 4 :(得分:0)
其他答案不完整且已过时。
请注意,我在下面使用JavaScript和destructuring assignment syntax。请务必查看Cocos API documentation以了解您的语言实施情况。
给你:
setScale()
应用于精灵后的尺寸)。anchorPoint
是(0.5,0.5),而此坐标表示(0,0)位置。换句话说,如果anchorPoint设置为默认值,那么getBoundingBox().x
+ getBoundingBox().width
/ 2 = getPosition().x
(您在setPosition()
中设置的x值)。示例:
const boundingBox = sprite.getBoundingBox();
const { x, y, width, height } = boundingBox;
给你:
示例:
const contentSize = sprite.getContentSize();
const { x, y } = contentSize;
给你:
示例:
const textureRect = sprite.getTextureRect();
const { x, y, width, height } = textureRect;