c++ - 从侧面而不是从中心缩放 CCSprite

标签 c++ xcode cocos2d-iphone cocos2d-x

我正在尝试制作一个自定义的进度条。我想做的是让“barMask.png”的 X 比例取决于数字的百分比。我尝试这样做:

barBack = CCSprite::create( "barBack.png" );
this -> addChild( barBack );

barMask = CCSprite::create( "barMask.png" );
barMask -> setPosition( barBack -> getPosition( ) );
this -> addChild( barMask );

然后是更新方法

// Scale the width of barMask depending on the percentage of the progress.
barMask -> setScaleX( CURRENT_AMOUNT / TOTAL_AMOUNT );

但是, Sprite 的缩放比例如下:

Frame 1: [ |||||||||| ]
Frame 2: [  ||||||||  ]
Frame 3: [   ||||||   ]

它缩小到中间。我怎样才能让它缩小到左/右?像这样:

Frame 1: [ |||||||||| ]
Frame 2: [ |||||||||  ]
Frame 3: [ ||||||||   ]
Frame 4: [ |||||||    ]

我了解 CCProgressTimer,但我想使用纯粹的 Sprite 作为进度条。

最佳答案

将 spriet 的 anchorPoint 属性更改为 (0.f, 0.5f)。所有变换都是相对于节点的 anchor 进行的。默认情况下 Sprite 的 anchor 是(0.5f,0.5f)。这就是为什么默认情况下你的缩放是相对于 Sprite 的中心的。

关于c++ - 从侧面而不是从中心缩放 CCSprite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12454665/

相关文章:

c++ - 如何使用 gsl 窄播

iphone - 我可以强制要求设备或模拟器始终用于构建特定目标吗?

iphone - 在 Storyboard 中编辑自定义 UIView 子类

ios - 如何在cocos2d中针对特定场景实现手势

ios - 由于图像,Cocos2d 中的内存警告

C++11 原子内存排序 - 这是宽松(释放-消费)排序的正确用法吗?

c++ - 无法使用 CPU 后端的 tensorflow AOT 编译创建最终二进制文件

c++ - 如何在 C++ 程序中使用位值而不是字符?

ios - 仅在从 iOS8 升级到 iOS 9.2 后,应用程序在第二次启动时崩溃

objective-c - 计划更新问题