如何在cocos2d for iphone中获取CCSprite的宽度和高度

发布于 2024-08-26 06:51:44 字数 80 浏览 5 评论 0原文

这就是问题 xD

给定 iphone 中 cocos2d 中的 CCSprite 实例,我可以使用什么方法来获取图像的宽度和高度?

That's the question xD

Given an instance of a CCSprite in cocos2d in iphone, what method can I use to obtain the image width and height?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

≈。彩虹 2024-09-02 06:51:44

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;
}

The CCSprite class has a bounding box property that's a CGRect:

  CCSprite *sprite = [CCSprite spriteWithFile: @"file.png"];
  int width = [sprite boundingBox].size.width;

I added a width and height methods to my CCSprite subclass.

-(CGFloat) width
{
    return [self boundingBox].size.width;
}

-(CGFloat) height
{
    return [self boundingBox].size.height;
}
七秒鱼° 2024-09-02 06:51:44

原始宽度:
sprite.contentSize.width

原始高度:
sprite.contentSize.height

当前宽度:
sprite.contentSize.width * sprite.scaleX

当前高度:
sprite.contentSize.height * sprite.scaleY

raw width:
sprite.contentSize.width

raw height:
sprite.contentSize.height

current width:
sprite.contentSize.width * sprite.scaleX

current height:
sprite.contentSize.height * sprite.scaleY

何必那么矫情 2024-09-02 06:51:44

在 cocos2d-x 中

sprite->boundingBox().size.width;

sprite->boundingBox().size.height;

IN cocos2d-x

sprite->boundingBox().size.width;

sprite->boundingBox().size.height;
一抹淡然 2024-09-02 06:51:44

在 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;

In cocos2d-x v3.x, boundingBox is deprecated in the Node class (i.e. the super class of Sprite). Use the following code instead:

auto spriteWidth = sprite->getTextureRect().size.width;
auto spriteHeight = sprite->getTextureRect().size.height;

or

auto spriteWidth = sprite->getContentSize().width;
auto spriteHeight = sprite->getContentSize().height;
残花月 2024-09-02 06:51:44

2018年的答案(Cocos2d-x v3.x:)

其他答案不完整且已过时。

请注意,我在下面使用 JavaScript 以及 解构赋值语法。请务必查看您的语言实现的 Cocos API 文档


getBoundingBox()

为您提供:

  • 缩放尺寸(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;

getContentSize()

为您提供:

  • 未缩放的大小。

示例:

const contentSize = sprite.getContentSize();
const { x, y } = contentSize;

getTextureRect()

为您提供:

  • 未缩放的尺寸。
  • 精灵在从中提取的纹理(即精灵表)上的坐标示例

const textureRect = sprite.getTextureRect();
const { x, y, width, height } = textureRect;

Answer for 2018 (Cocos2d-x v3.x:)

The other answers are incomplete and out-of-date.

Note that I'm using JavaScript below along with destructuring assignment syntax. Be sure to view the Cocos API documentation for your language implementation.


getBoundingBox()

Gives you the:

  • Scaled size (the size after setScale() is applied to the sprite).
  • Coordinates of sprite on the screen. Note that the default anchorPoint for sprites is (0.5, 0.5), while this coordinate represents the (0, 0) position. In other words, if the anchorPoint is set at the default, then getBoundingBox().x + getBoundingBox().width / 2 = getPosition().x (the x value you set in setPosition()).

Example:

const boundingBox = sprite.getBoundingBox();
const { x, y, width, height } = boundingBox;

getContentSize()

Gives you the:

  • Unscaled size.

Example:

const contentSize = sprite.getContentSize();
const { x, y } = contentSize;

getTextureRect()

Gives you the:

  • Unscaled size.
  • Coordinates of sprite on the texture from which it is extracted (i.e. sprite sheet)

Example:

const textureRect = sprite.getTextureRect();
const { x, y, width, height } = textureRect;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文