gpt4 book ai didi

c++ - Cocos2d-x - 了解在屏幕上定位 Sprite

转载 作者:行者123 更新时间:2023-11-30 01:58:53 26 4
gpt4 key购买 nike

谁能提供一些关于在屏幕上放置 CCSprite 的基本指导?

例子:

CCSize s = CCDirector::sharedDirector()->getWinSize();

使用 s,假设我想在屏幕底部从 0 开始放置一个 Sprite ,比如草。

如果我以 1024 x 768 运行,中间是:

setPosition( ccp(s.width/2, s.height/2) );

所以从左边和中间一直开始是:

setPosition( ccp(0, s.height/2) );

那么我要怎样才能走得更远呢?

setPosition( 0, s.height) );

这让我从左上角开始并一直停留在屏幕顶部。

如有任何帮助,我们将不胜感激。

最佳答案

位置是相对于 Sprite 的parent,以及它的anchorPoint

anchorPoint 每个坐标的取值范围通常为 0 到 1,默认值为 0.5。我说“通常”是因为它实际上可以是任何值,但 0-1 之外的范围会使您超出 Sprite 的范围。

例如,(0,0)anchorPoint 相对于左下角定位。 (1,0) 是右下角,(0,1) 是左上角,(1,1) 是右上角. (0.5,0.5) 是 Sprite 的正中心,这是默认设置。

基本上,您只需将值乘以宽度即可获得相对位置。

如果你想在屏幕的最底部放置一个 Sprite (左下角与屏幕左下角对齐),你可以通过多种方式实现,基于anchorPoint 一个人。

默认anchorPoint(0.5,0.5),位置为(sprite.contentSize.width/2, sprite.contentSize.height/2)

如果将 anchorPoint 设置为 (0,0),则只需通过 (0,0) 即可获得相同的位置。

如果您想将该 Sprite 移动到屏幕的正中央( Sprite 的中心就在中间), anchor (0.5, 0.5),位置将是(s.width/2, s.height/2)

这一切都假设您要将 Sprite 添加到屏幕大小的父级,这是定位的第二部分的用武之地。

位置也相对于 Sprite 的父级 - 可以是任何其他 CCNode(CCLayer、另一个 CCSprite 等)。

思考的方式与添加全屏节点没有太大区别 - 除了根据父级的大小和位置而不是屏幕来思考。

关于c++ - Cocos2d-x - 了解在屏幕上定位 Sprite ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16726044/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com