首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SKPhysicsBody尺寸与resizeToHeight

SKPhysicsBody尺寸与resizeToHeight
EN

Stack Overflow用户
提问于 2014-02-14 21:08:59
回答 2查看 1K关注 0票数 0

我对物理身体的大小有一个问题,因为他重新调整了身体的大小。

我的代码:

代码语言:javascript
复制
backTop.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:backTop.size];
[backTop.physicsBody setAffectedByGravity:NO];
[backTop.physicsBody setDynamic:NO];
[backTop.physicsBody setCategoryBitMask:kPipeCategory];
[backTop.physicsBody setCollisionBitMask:kPlayerCategory];
backTop.physicsBody.usesPreciseCollisionDetection = YES;

//SKAction
SKAction *scaleBackTopActionStart = [SKAction resizeToHeight:backTop.size.height+kPipeGap duration:kPipeScale];
SKAction *scaleBackTopActionEnd = [SKAction resizeToHeight:pipeTop.size.height duration:kPipeScale];
SKAction *scaleBackTopSequence = [SKAction sequence:@[[SKAction waitForDuration:kPipeScaleStartWait],scaleBackTopActionStart, scaleBackTopActionEnd, [SKAction waitForDuration:kPipeScaleWait]]];

问题:

它的大小被调整了,但他的物理身体却没有跟上。你有什么主意吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-14 21:34:22

尺度只是一种视觉属性,它不适用于物理物体。除了创造一个具有适当比例形状的新身体之外,没有其他方法可以对一个物理体进行缩放。

票数 4
EN

Stack Overflow用户

发布于 2014-02-15 12:11:37

通过@LearnCocos2D注释,我发现了这个更改(更改高度元素并移动它):

代码语言:javascript
复制
SKSpriteNode *backTop = [SKSpriteNode spriteNodeWithColor:[UIColor whiteColor] size:CGSizeMake(pipeTop.size.width,pipeTop.size.height+kPipeGap)];
[backTop setCenterRect:CGRectMake(26.0/kPipeWidth, 26.0/kPipeWidth, 4.0/kPipeWidth, 4.0/kPipeWidth)];
[backTop setPosition:CGPointMake(self.size.width+(pipeTop.size.width/2), self.size.height-(pipeTop.size.height/2)+(kPipeGap/2))];

SKAction *scaleBackTopActionStart = [SKAction moveToY:backTop.position.y-kPipeGap/2 duration:kPipeScale];
SKAction *scaleBackTopActionEnd = [SKAction moveToY:backTop.position.y duration:kPipeScale];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21789556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档