草庐IT

Sprite-kit

全部标签

ios - 调整使用 SKPhysicsBody 创建的 SpriteKit SKPhysicsBody 的大小(circleOfRadius :)

我正在构建一个SpriteKit“链式react”游戏,其中的圆圈在“爆炸”时会变大。我正在使用SKPhysicsBody(circleOfRadius:)初始值设定项来为圆圈创建物理体。不幸的是,这些物理体似乎不会随着圆变大而调整大小,而且它们没有我可以设置的公开的.radius属性。有什么方法可以在SpriteKit中调整物理体的大小,还是我需要每帧都创建一个新的物理体?(这就是我在下面所做的,代码运行良好,但感觉在更新循环中创建新的物理体真的很低效。)PS-我知道对于圆圈,我可以使用三角函数轻松进行准确的碰撞检测以获得距离,但我想使用SpriteKit碰撞检测来实现其他一些效果。

swift 1.2 : Method does not override any method from its superclass

在我的SKScene子类中,我实现了一个touchesBegan方法。此方法将NSSet更改为Set以使其与Swift1.2兼容(参见question)。overridefunctouchesBegan(touches:Set,withEventevent:UIEvent){//...}现在编译器给我一个错误:Methoddoesnotoverrideanymethodfromitssuperclass。我的代码——和任何Swift代码一样——在1.2中被破坏了,我已经修复了除了这个覆盖案例之外的所有问题。我在这里遗漏了什么吗? 最佳答案

ios - 使用 Spritekit 的简单 Gif 动画

我真的找不到一个简单的解决方案,我看到的每个示例都只显示了非常复杂的解决方案,但我想要的只是2-3个循环的图像,所以它看起来就像是动画。与Gif动画效果相同。现在我有这个来创建一个图像MonsterNode=SKSpriteNode(imageNamed:"MonsterNode_GameScene")但是我如何将MonsterNode变量设置为此类动画?我真的在寻找实现这一目标所需的最少代码。 最佳答案 主要思想是使用animateWithTextures来完成这项任务。您需要设置Sprite需要动画的所有帧以及每帧的显示时间。然

ios - 防止 SKNode 离开 View

我正在开发一个“太空入侵者”游戏,我已经实现了CMMotionManager来移动我的heroShip倾斜(游戏只能在横向运行),但由于某种原因我的船会移出视野,即使self.physicsBody=SKPhysicsBody(edgeLoopFromRect:self.frame)应该通过制造物理优势来防止这种情况发生。有什么想法吗?importSpriteKitimportCoreMotionclassGameScene:SKScene,SKPhysicsContactDelegate{letcollisionBulletCategory:UInt32=0x1,withEvente

ios - 使用 spritekit 检测释放快速滑动时的坐标

关闭。这个问题需要debuggingdetails.它目前不接受答案。编辑问题以包含desiredbehavior,aspecificproblemorerror,andtheshortestcodenecessarytoreproducetheproblem.这将有助于其他人回答问题。关闭6年前。Improvethisquestion您好,如果有人可以帮助我,那就太好了!我需要获取滑动的坐标。我可以从locationInNode等获取初始触摸的坐标,但是我们如何获取滑动释放点的坐标?functouchesBegan(touches:Set,withEventevent:UIEvent

swift - 如何绘制两种不同颜色的空心圆?

我非常熟悉绘制填充的createEllipseInRect形状节点,但我想知道是否有办法以编程方式执行此操作。我想要一个从中心split的圆圈,两边都有两种不同的颜色。我没有代码,因为我不知道从哪里开始。somethinglikethis非常感谢帮助。 最佳答案 您可以尝试使用SKCropNode,这允许您只显示每个圆的一半。有关此示例,请参见下面的代码。classGameScene:SKScene{overridefuncdidMoveToView(view:SKView){anchorPoint=CGPointMake(0.5,

ios - SpriteKit/Swift - 二元运算符 '>' 不能应用于两个 'CGVector' 操作数

在我的游戏中,我需要比较碰撞时的2个速度。两种速度都采用CGVector(dx:,dy:)格式。但是Swift3不允许我使用“>”和“funcdidBegin(_contact:SKPhysicsContact){varfirstBody=SKPhysicsBody()varsecondBody=SKPhysicsBody()letballNode=self.childNode(withName:ballName)letdefaultSpeedX:CGFloat=100letdefaultSpeedY:CGFloat=-100letmaxSpeed=CGVector(dx:defaul

ios - 使用 Sprite Kit 和 Swift 跳跃

我正在SpriteKit和Swift中创建一个应用程序,我想创建一个在按下屏幕时向上跳跃的Sprite,因此当屏幕被按下得更高时跳得更高。我已经实现了这种效果,但是直到屏幕释放后才应用物理引擎中的重力。因此,跳跃是无限的(呈指数增长),而不是在某一点趋于平稳(如二次方程/抛物线)。如何在Sprite运动过程中主动施加重力?这是我的基本运动代码:overridefuncupdate(_currentTime:TimeInterval){//Calledbeforeeachframeisrendered//touchedistruewhilescreenistouchediftouched

swift - SKCameraNode 未居中

我正在使用Swift3、Xcode和SpriteKit我有一个名为cam的SKCameraNode,我在相机位置放置了一个节点来检查它:varcam:SKCameraNode!letcameraNode=SKSpriteNode(imageNamed:"hx")overridefuncdidMove(toview:SKView){cam=SKCameraNode()camera=camaddChild(cam)cam.position=CGPoint(x:playableRect.midWidth,y:playableRect.midHeight)addChild(cameraNode

ios - 在 Swift 中混淆反向触摸事件

在我的函数中overridefunctouchesBegan(_touches:Set,withevent:UIEvent?){fortouchintouches{lettouchLocation=touch.location(in:self.view)print("X:\(touchLocation.x)Y:\(touchLocation.y)")}}我得到了反转的Y值。如果我点击顶部,我得到~0值,如果我点击底部,我得到高值。这使我的spriteimmoving朝错误的Y方向移动。但是,如果我删除self.view中的“.view”,它就会正常工作。有谁知道为什么我用self.vi