【问题标题】:How does SKAction scaleBy:duration: method works under the hood?SKAction scaleBy:duration: 方法如何在幕后工作?
【发布时间】:2014-05-06 12:00:26
【问题描述】:

需要有一种方法可以在不使用 SKAction 的情况下“按比例缩放”,但它应该像 scaleBy:duration: 方法那样模仿对 SKNode 的更改。

“scaledBy”节点上的比例因子如何变化?

【问题讨论】:

标签: ios objective-c sprite-kit sknode


【解决方案1】:

我的猜测是,有某种动作管理器运行自己的 update: 方法(就像 SKScene 所拥有的那样)并更新附加到的节点的适当属性(在本例中为 xScaleyScale)每个回调的操作。

update: 方法采用 NSTimeInterval 参数,可用于了解动画要进行多远以及何时完成。

编辑

在 cocos2d-x 中,CCScaleBy 动作是CCScaleTo 的子类。更新方法是这样的:

void CCScaleTo::update(float time)
{
    setScaleX(m_fStartScaleX + m_fDeltaX * time);
    setScaleY(m_fStartScaleY + m_fDeltaY * time);
}

【讨论】:

  • 如果你想看一个实现,请查看 cocos2d。
  • 更新了我的问题,我对比例因子的变化很感兴趣。
  • 再来看看 cocos2d 看看他们是怎么处理的。
  • 我看到了,但是我使用的 SKAction 的持续时间是 0.0。因此,仅缩放到 startScaleX + scaleBy 无法按预期工作。
  • 您的意思是如果您将持续时间设置为0.0,Apple 的[SKAction scaleBy:duration:] 不起作用?
猜你喜欢
  • 1970-01-01
  • 2012-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-23
  • 2015-05-18
  • 1970-01-01
  • 2014-11-18
相关资源
最近更新 更多