草庐IT

SKPhysicsBody

全部标签

ios - SpriteKit SKPhysicsBody 像一扇门一样在一个方向上碰撞,你只能通过而不能返回

在SpriteKitSKPhysicsBody中,是否可以有一个对象可以通过但不能返回。他们的想法是他们在一个方向上没有碰撞,所以你可以通过而不是返回,就像一扇活板门。 最佳答案 我不太确定某种物理方式是可行的,但您应该能够在游戏运行时弄乱物理体的碰撞位掩码以实现类似的效果。所以你的门处于打开状态,当它检测到玩家正在触摸它时*,它会更改位掩码,以便玩家与其发生碰撞。这应该允许玩家通过一种方式,但不能返回。*实际上,让门检测玩家何时不再通过玩家的物理body接触门,并根据是否测试x或y位置这是活板门,或普通门。如果位置离门足够远,则更

ios - SpriteKit SKPhysicsBody bodyWithTexture 颠倒了

您好,我正在尝试修复这个spritekit的物理形状倒置的错误。[SKPhysicsBodybodyWithTexture:monsterTexturesize:monsterTexture.size]怪物第一次出现时,物理body方向是正确的。但是第二次和之后的每一次怪物出现,它的物理body都沿着Y轴倒转。查看图片,其中skView.showsPhysics=true;显示物理形状。它第一次正常工作的事实让我觉得也许我不知道的一些属性正在被修改或什么的。我想将2个物理block放在Boot的粗略形状中,但这并不理想,因为我想在其他一些更复杂的形状上使用bodyWithTexture

ios - 用颜色绘制 SKPhysicsBody 的形状

用SpriteKit创建一个游戏,实际上效果很好。我正在使用物理学并且能够实际看到我的body在哪里,因为我的Sprite内部可能有一些alpha真的很有帮助。这也有助于创建更精确的实体。在SpriteKit的文档中,他们谈到了debugOverlay,但他们给出的唯一示例是绘制重力方向。这是链接:https://developer.apple.com/library/ios/documentation/GraphicsAnimation/Conceptual/SpriteKit_PG/Actions/Actions.html滚动到调试覆盖区域。有没有人写过一些代码可以轻松访问场景中所

ios - 多个 SKPhysicsBody 来自带有 alpha 的纹理

我正在尝试从动态包含alpha值的纹理创建SKPhysicsBody。不幸的是,SKPhysicsBody仅由纹理中的一block创建。我该如何解决?下面是SKPhysicsBody的创建方式:physicsBody=SKPhysicsBody(texture:texture!,size:size)编辑:BeforeAfter 最佳答案 为了完整起见,我现在找到了解决该问题的方法。遗憾的是,我不能仅使用纹理中的这种便捷功能创建SKPhysicsBody。一旦纹理包含多个形状,它将不再起作用。基本上我所做的是手动创建初始路径,对路径本

swift - 如何将 SKPhysicsBody 应用于贝塞尔曲线?

我正在创建一个摩托车越野赛游戏,我有一个弯曲的地面供玩家驾驶。我创建地面的代码如下所示:letpath=UIBezierPath()letstartPoint=CGPoint(x:0.0,y:self.playerCamera.position.x+50)letendPoint=CGPoint(x:self.frame.width,y:self.playerCamera.position.x+50)path.moveToPoint(startPoint)path.addCurveToPoint(endPoint,controlPoint1:CGPoint(x:200.0,y:100),

swift - SKPhysicsBody 只使用了部分 SKTexture

我正在使用带有图像的SKTexture并设置SKPhysicsBody。像那样:varmoleTexture=SKTexture(imageNamed:"moleTop1")leftPlayer=SKSpriteNode(texture:moleTexture)leftPlayer.physicsBody=SKPhysicsBody(texture:moleTexture,size:leftPlayer.texture!.size())开始游戏后,我发现physicsBody设置错误。我已经激活了showPhysics属性,我的图像看起来像这样:如您所见,SKPhysicsBody唯一

swift - 如何使用 CGPath 为该图像制作 SKPhysicsBody?

我正在尝试使用CGPath多边形为这个SKSpriteNode制作一个SKPhysics主体。问题是,当我检查此节点和播放器节点之间的碰撞时,执行了didBeginContact方法,即使它们没有相互接触。我相信他们的坐标有问题,但我看不到多边形线,这让我也很难看到线的准确性。这是我使用的代码:lettriangle=SKSpriteNode(imageNamed:"Triangle_ZigZag")lettrianglePath=CGMutablePath()trianglePath.addLines(between:[CGPoint(x:triangle.size.width,y:

ios - 在 iOS 8 的 SpriteKit 中使用 xScale 翻转 Sprite 不会翻转 SKPhysicsBody

我有一个设置,其中有一个空的SKSpriteNode(“播放器”),它有N个SKSpriteNode作为child(body部位,例如“ARM”).每个child都有一个像这样创建的SKPhysicsBody:sprite.physicsBody=SKPhysicsBody(texture:sprite.texture,size:sprite.texture!.size())当我尝试翻转整个Sprite(“玩家”)时self.xScale=-1所有纹理都正确翻转,但SKPhysicsBody不受影响。我如何正确地翻转包含所有子项及其SKPhysicsBody的整个Sprite?

ios - 使用 skphysicsBody 和半径的圆圈将球困在圆圈中

roundbg.physicsBody=SKPhysicsBody(circleOfRadius:round.frame.width/2)roundbg.physicsBody?.dynamic=false试图将球困在圆圈内(roundbg)。问题是,当我将circleOfRadius用于我的圆形纹理时,它需要整个圆而不仅仅是边框。我明白为什么circleOfRadius这样做但无法弄清楚如何只捕获边界。有任何想法吗?所以理想情况下,当球落下时,它会被困在圆圈(roundbg)内。第一个iOS应用程序/游戏,而且非常新。谢谢你的帮助! 最佳答案

SKPhysicsBody 的 Swift 便捷初始化器扩展

extensionSKPhysicsBody{///anchorPointversionofinit(rectangleOfSize:center:)convenienceinit(rectangleOfSizes:CGSize,withAnchorPointanchorPoint:CGPoint){varcenter=CGPoint()center.x=(s.width/2)-(s.width*anchorPoint.x)center.y=(s.height/2)-(s.height*anchorPoint.y)self.init(rectangleOfSize:s,center:c