这就是问题xD
给定iphone中cocos2d中的CCSprite实例,我可以使用什么方法来获取图像的宽度和高度?
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;
}
原始宽度:
sprite.contentSize.width
原始身高:
sprite.contentSize.height
当前宽度:
sprite.contentSize.width * sprite.scaleX
当前高度:
sprite.contentSize.height * sprite.scaleY
在 cocos2d-x
sprite->boundingBox().size.width;
sprite->boundingBox().size.height;
在 cocos2d-x v3.x 中,Node类(即SpriteboundingBox
的超类)中已弃用。请改用以下代码:
auto spriteWidth = sprite->getTextureRect().size.width;
auto spriteHeight = sprite->getTextureRect().size.height;
或者
auto spriteWidth = sprite->getContentSize().width;
auto spriteHeight = sprite->getContentSize().height;
其他答案不完整且已过时。
请注意,我在下面使用 JavaScript 以及解构赋值语法。请务必查看您的语言实现的Cocos API 文档。
为您提供:
setScale()
应用到精灵之后的大小)。anchorPoint
精灵的默认值为 (0.5, 0.5),而此坐标表示 (0, 0) 位置。换句话说,如果anchorPoint设置为默认值,那么getBoundingBox().x
+ getBoundingBox().width
/ 2 = getPosition().x
(你设置的x值setPosition()
)。例子:
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;