草庐IT

PhysicsBody

全部标签

swift - 使用 Swift 在 Sprite Kit 中进行碰撞检测

下面的代码来self目前正在做的一个项目,过去几天我一直在尝试自学Swift语言和SpriteKit,这是我第一次尝试游戏,它是一个FlappyBird类型的游戏.今天我在尝试编写碰撞检测代码时遇到了一个问题。当小鸟接触其中一根管道时,游戏应该暂停。但是,当我运行代码并且小鸟接触到管道时,什么也没有发生,小鸟只是从管道上弹开。我已经阅读了很多教程并观看了很多关于这个主题的视频来尝试解决我的问题并且没有任何运气。我已经在下面的代码中编写了我从上次观看的视频中学到的所有碰撞检测代码。谁能告诉我我做错了什么。任何建议将不胜感激,谢谢。////GameScene.swift//BirdFlap

ios - SpriteKit - 使某些 SpriteNodes 在不禁用其物理体的情况下不会发生碰撞

我在屏幕上有4个SpriteNode,我不希望它们相互弹开,而是相互流过,同时保持与某些SpriteNode和屏幕框架的碰撞。我已经为所有这些声明了类别:letBCategory:UInt32=0x1还添加了位掩码:b.physicsBody!.categoryBitMask=BCategoryb2.physicsBody!.categoryBitMask=B2Categoryb3.physicsBody!.categoryBitMask=B3Categoryb4.physicsBody!.categoryBitMask=B4Categoryp.physicsBody!.categor

swift - SKSpriteNode 卡在 init(edgeLoopF​​rom :) - SKPhysicsBody

我有一个名为“Floor”的单独类,如下所示。classFloor:SKNode{overrideinit(){super.init()//letedgeFrame=CGRect(origin:CGPoint(x:1,y:1),size:CGSize(width:1078,height:1950))//self.physicsBody=SKPhysicsBody(edgeLoopFrom:edgeFrame)letborderBody=SKPhysicsBody(edgeLoopFrom:self.frame)borderBody.friction=0self.physicsBody=

swift - 如何使 Sprite 在对象内反弹?

我试图让一个球在一个圆圈内弹跳,这样它就不会超出圆周。现在球在self.frame中反弹。如何让球在圆圈内弹跳?letsceneBody=SKPhysicsBody(edgeLoopFromRect:self.frame)sceneBody.friction=0self.physicsBody=sceneBodyvarball=SKShapeNode(circleOfRadius:9)ball.fillColor=SKColor.whiteColor()ball.position=view.centerball.physicsBody=SKPhysicsBody(circleOfRad

swift - didBeginContact 未调用

我正在制作一个需要我的spriteNodes发生碰撞的游戏。我遵循了一个教程,但它对我不起作用。当我运行我的游戏并且两个对象发生碰撞时,输出监视器中没有println("beginContact"),因此没有调用didBeginContact函数。overrideinit(size:CGSize){super.init(size:size)player.planeSprite=SKSpriteNode(imageNamed:"plane5")player.planeSprite.physicsBody?=SKPhysicsBody(rectangleOfSize:player.plan

swift - 多孔边界

我刚刚为我的游戏设置了一个边界,它似乎工作正常,直到它真的被强制,就像我让我的角色朝它跑了几秒钟,然后我的角色就​​会直接穿过。对此有何解释以及如何解决?编辑:这是我的边界代码funccreateSceneContents(){self.backgroundColor=.blackself.physicsBody=SKPhysicsBody(edgeLoopFrom:self.frame)}createSceneContents()ship.physicsBody=SKPhysicsBody(rectangleOf:ship.size)ship.physicsBody?.affecte

iphone - SceneKit Physics——摩擦和凹多面体

我正在SceneKit中开发沙包游戏,遇到了SCNPhysicsShape和SCNPhysicsBody摩擦的错误。游戏的棋盘通过.dae文件加载,并设置为SCNPhysicsShapeTypeConcavePolyhedron。这允许bean袋从孔中掉落,但它似乎消除了板上的摩擦力。尽管bean袋的摩擦值为1.0(bean袋的摩擦值为1.0),但当bean袋撞到木板时它会立即滑落。如果我将板更改为SCNPhysicsShapeTypeConvexHull,那么摩擦会起作用,但bean袋不会从孔中掉落。这是我的自定义电路板初始化:letgeo=nodeWithFile("board.d

ios - 碰撞类型源错误 - spritekit swift 游戏

因此,我将我的游戏球类型从形状调整为图像,这迫使我重做游戏的物理特性。我是swift的新手,一直在努力解决我在swift游戏中的碰撞问题。classGameScene:SKScene,GameDelegate,SKPhysicsContactDelegate{varball:Ball!letballSpeedX=CGFloat(500)//ball=Ball(imageNamed:"colorBall.png")enumCollisionTypes:UInt32{caseFloor=1caseBall=2}//boardletboards=Boards.make(CollideType

ios - 将节点设置为从一系列点随机生成并以逐渐加快的速度下降

我希望实现的结果:我希望从存储在数组中的3个不同位置随机生成一个节点。一旦产生,我希望节点下降。随着时间的推移,我希望节点以更快的速度下降。我目前拥有的:节点在设定的位置生成并正常掉落。该节点目前不会随机生成,并且它下落的速度不会增加。我编写了一个数组,但它目前没有按应有的方式运行。更新代码:varnodeDropTime:TimeInterval=5funcfallingNodeAction(){self.node=SKSpriteNode(imageNamed:"node2")self.node.zPosition=1self.node.physicsBody=SKPhysicsB

Swift 3 子弹发射延迟

在我的游戏中,您点击屏幕上的任意位置,子弹就会朝那个方向飞去。唯一的问题是您可以尽可能快地拍摄。有什么办法可以在每次拍摄后增加延迟。所以我想开枪,等1秒再开枪。这是我在touchesEnded中的代码:overridefunctouchesEnded(_touches:Set,withevent:UIEvent?){guardlettouch=touches.firstelse{return}lettouchLocation=touch.location(in:self)//Setupinitiallocationofbulletandpropertiesletbullet=SKSpr