草庐IT

skphysicsBody

全部标签

swift - 多孔边界

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

ios - 如何使 applyImpulse 在所有屏幕上都相等

正如您在使用SpriteKit时可能知道的那样,applyImpulse并非在所有屏幕上都能正常工作。在iPhoneSE上,我的球移动得非常快,但在iPadPro2ndgen上,球移动得非常慢。有没有一种方法可以使它在所有屏幕上都相等,与屏幕宽度之类的东西相比?例如,我希望我的球在所有设备上在5秒内穿过屏幕,我会使用什么公式?我已经测试了屏幕尺寸和我的applyImpulse使球移动到屏幕边缘的时间之间的关系:注意:每秒点数的计算方法是半屏尺寸除以是时候移动了。该图显示每秒像素数随着屏幕尺寸的增大而降低。如何更改我的applyImpulse以在所有屏幕上工作?(不包括专门为每个设备制作

ios - 设置最低滚动速度

我有一个球,我将它射向空中:它是这样初始化的:funcinitBallNode(){//TODO:CreateballnodeballNode=SKSpriteNode(imageNamed:"Ball1")//CreateaballballNode.zPosition=ZPositions.ballletoffsetFromCorner:CGFloat=20//Offsetfrombottom-leftofscreenballNode.position=CGPoint(x:frame.minX+ballNode.size.width/2+offsetFromCorner,y:fram

多次注册 Swift SpriteKit 碰撞

我正在使用SpriteKit和Swift构建iPhone游戏,但我的碰撞检测系统无法正常运行。当我的“子弹”物理体和我的“玩家”物理体发生碰撞时,碰撞检测函数被调用多次,通常是4-12次。我已经尝试将“usesPreciseCollisionDetection”设置为true,但它仍然存在问题。此外,当子弹以一定角度而不是直接击中玩家时,该方法似乎被调用了更多次。有什么想法可以解决这个问题吗?碰撞类型:enumColliderType:UInt32{casePlayer=0b1caseBullet=0b10}玩家物理body设置:playerBody!.categoryBitMask=

Swift 游戏碰撞检测和物理 - Sprite 和背景

我正在学习Swift以创建适用于iOS的游戏,但我正在努力弄清楚Sprite将如何与背景发生碰撞和交互。基本游戏是一个球,您引导它走下迷宫,但迷宫可能比屏幕大几倍。迷宫可以是一个大的位图,也可以由图block组成,但我还没有决定如何让球与迷宫互动。我可以制作迷宫Sprite节点中的所有图block,然后让SpriteKit解决它,但我认为这不是一个很好的选择。然后是SpriteKit边缘体,如图所示-https://developer.apple.com/library/mac/documentation/GraphicsAnimation/Conceptual/SpriteKit_P

ios - 在更改 SKSpriteNode 位置的同时更改 SKPhysicsBody

我有一个非常简单的游戏。这就像使用加速度计的经典迷宫游戏,但用户还可以使用3DTouch更改矩形的大小。玩家的节点是矩形,由于从加速度计获取数据的世界物理学而移动(这里没有什么特别的):motionManager.startAccelerometerUpdates(to:OperationQueue.current!){(data,error)inifletmotionData=data{self.physicsWorld.gravity=CGVector(dx:motionData.acceleration.x*7,dy:motionData.acceleration.y*7)}}和

swift - 如何将物理体赋予弧线?

我有两条弧形成一个圆(SKCropNode),每条都有不同的颜色。我知道我可以给整个圆一个circleOfRadius,但我想知道是否可以只给一个圆弧一个物理体来适应圆弧的形状。非常感谢帮助。 最佳答案 您可能希望避免使用SKCropNode来构建弧线。来自Apple的文档,Useclippingandeffectnodessparingly.Bothareverypowerful,butcanbeexpensive,especiallywhennestedtogetherwithinthenodetree.或者,您可以构建一个弧形

ios - 重力属性在 SpriteKit 场景中不起作用

importSpriteKitclassGameScene:SKScene{overridefuncdidMoveToView(view:SKView){/*Setupyourscenehere*/}overridefunctouchesBegan(touches:Set,withEventevent:UIEvent?){/*Calledwhenatouchbegins*/fortouchintouches{letlocation=touch.locationInNode(self)letsprite=SKSpriteNode(imageNamed:"BeachBall-100")se

swift 3 (SpriteKit) : Aligning SKPhysicsBody to SKShapeNode

我在我的程序中使用这个创建SKShapeNodes:letpoints=[CGPoint(x:x,y:y),CGPoint(x:x2,y:y2)]letline=SKShapeNode(points:&points,count:points.count)我遇到的问题是,每当我向线上添加一个physicsBody时,physicsBody都没有与该线对齐。我意识到这个问题是因为线的位置总是CGPoint(x:0,y:0)所以physicsBody总是在屏幕的中心,不管线在哪里。这是我创建physicsBody的代码:line.physicsBody=SKPhysicsBody(recta

ios - SKPhysicsBody 质量变化中心

我目前正在开发一款游戏,其中我有一张圆柱形物体的图片,我用以下内容制作了一个SKPhysicsBody:self.oval.node.physicsBody=SKPhysicsBody(texture:self.oval.node.texture,size:self.oval.node.size)此方法在节点周围创建了一个漂亮的形状,但是,重心偏离了......它在椭圆的尖端保持平衡。无论如何要改变它以平衡理论上最重的部分应该在哪里?谢谢! 最佳答案 质心不能偏离太远,它是准确的。问题是您希望您的物理体具有不均匀的密度。刚性物理体的