在我目前使用SpriteKit的项目中,我有一堆精灵需要在不同时间独立地放大和缩小.问题在于,当我缩放节点时,物理体不会随之缩放,因此它会破坏物理学.这是我为了这个问题而放在一起的一个小例子:
CGSize objectsize = CGSizeMake(100,100); self.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromrect:CGRectMake(0,self.size.width,self.size.height)]; SKSpriteNode *n1 = [SKSpriteNode spriteNodeWithColor:[UIColor blueColor] size:objectsize]; n1.position = CGPointMake(self.size.width/2,2*self.size.height/3); n1.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:objectsize]; n1.physicsBody.affectedByGravity = YES; [self addChild:n1]; SKSpriteNode *n2 = [SKSpriteNode spriteNodeWithColor:[UIColor redColor] size:objectsize]; n2.position = CGPointMake(self.size.width/2,self.size.height/3); n2.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:objectsize]; n2.physicsBody.affectedByGravity = YES; [self addChild:n2]; [n1 setScale:0.5];
注意蓝色精灵(按比例缩小)如何位于红色精灵之上,但你可以告诉它的物理体仍然有我告诉它的尺寸,它没有缩放.
很明显,缩小节点不会缩小物理体.所以我的问题是如果我必须手动完成它,我该怎么做呢?
我尝试在缩放时用一个合适的尺寸交换身体,但是如果旧的身体有关节等,那么事情会变得非常复杂……如果我能以某种方式扩展现有的身体,那就简单多了.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。