【发布时间】:2014-07-08 17:29:33
【问题描述】:
我最近遇到了一个问题,我会增加节点的大小,但物理体的大小会保持不变。我试图寻找解决方案,但没有成功。怎样才能让body按照节点的大小进行缩放?
CGPoint location = CGPointMake(randX, -self.frame.size.height - expander.size.height);
SKAction *moveAction = [SKAction moveTo:location duration:randDuration];
SKAction *expandAction = [SKAction resizeToWidth:(expander.size.width * 1.4) height:(expander.size.width * 1.4) duration:1.0];
SKAction *collapseAction = [SKAction resizeToWidth:(expander.size.width) height: (expander.size.height) duration:1.0];
SKAction *doneAction = [SKAction runBlock:(dispatch_block_t)^() {
expander.hidden = YES;
}];
SKAction *expandCollapseAction = [SKAction repeatActionForever:[SKAction sequence:@[expandAction, collapseAction]]];
SKAction *moveExpandAction = [SKAction group:@[moveAction, expandCollapseAction]];
SKAction *moveExpanderActionWithDone = [SKAction sequence: @[moveExpandAction, doneAction ]];
[expander runAction:moveExpanderActionWithDone withKey: @"expanderMoving"];
【问题讨论】:
-
简短回答:你不能,物理形状不能缩放。更长的答案:您必须在比例持续时间内每帧重新创建身体,并不断更新和适当缩放身体形状。然而,这是非常低效的。虽然不确定 iOS 8,但它可能在那里工作,至少我隐约记得一些与缩放物理体有关的东西。
-
@LearnCocos2D 这完全出乎意料,因为我记得这不起作用。但是我现在尝试了,它看起来有效。你能检查我的答案并给出你的想法吗?
标签: ios objective-c sprite-kit