草庐IT

Spritekit

全部标签

ios - Swift - 将背景图像添加到 Spritekit 场景

这是我的代码,我没有为我的图像InterfaceBakground.jepg使用Assets目录。相反,我只是将这个2048x1535图像拖到项目中。但是图像没有以正确的方式出现。我希望图像显示为背景图像,填满整个屏幕。importSpriteKitimportGameplayKitclassGameScene:SKScene{varbackground=SKSpriteNode(imageNamed:"InterfaceBakground.jpeg")overridefuncdidMove(toview:SKView){background.position=CGPoint(x:se

swift - SpriteKit : Howto make holes in layer with blendMode

我有一个添加了一些元素的简单场景。现在我想专注于一个带有mask的特定元素,并在与我想要专注的元素相同的位置切割一个整体。非常类似于我们在某些游戏上看到的,当它们第一次启动时显示某种教程。基本上,我添加了一个带alpha=0.7的全屏层(这样用户仍然可以看到所有内容),然后在特定位置添加一个圆圈作为该层的子层并设置blendMode=。减去它从这个全屏层“切”出一个圆圈,所以在这个圆圈内你有一个清晰的View。将所有元素添加到屏幕后,我有以下代码。//beforethiscodeiaddedsomebasicelementslikecirclesandbackgroundsletmas

swift - 在 SpriteKit 中使用 Action

这里是Swift菜鸟,所以请多多包涵!我一直在按照教程将Action实现到我的SpriteKit(Swift3)游戏中。我有以下代码:classGameScene:SKScene{letplayer=SKSpriteNode(imageNamed:"Airplane")overridefuncdidMove(toview:SKView){backgroundColor=SKColor.whiteplayer.position=CGPoint(x:size.width*0.1,y:size.height*0.5)addChild(player)ifmotionManager.isAcce

ios - 为 SpriteKit 中的函数添加延迟

我希望只允许玩家每0.7秒发射一枚导弹。我该怎么做呢?这是我的代码。我已经尝试过我在这个网站上找到的其他方法,但它们不起作用。funcfireTorpedo(){if!self.player.isPaused{ifisSoundEffect==true{self.run(SKAction.playSoundFileNamed("Rocket",waitForCompletion:false))}lettorpedoNode=SKSpriteNode(imageNamed:"Rocket")torpedoNode.position=player.positiontorpedoNode.p

ios - SpriteKit 设备方向改变导致 SKLabelNode 失真 Swift

我正在使用SpriteKit在Swift中为iOS编写游戏。我对SpriteKit还是很陌生。我想同时支持iPhone和iPad的两种方向,并且发现了这一点:multipleorientationsinSpriteKit这在模拟器和设备中按预期工作,但是在设备上我注意到一些SKSpriteNodes在设备旋转动画之前稍微扭曲到它们的新大小。这非常明显,尤其是对于SKLabelNodes,文本会根据方向的变化而扭曲或轻微压扁或拉伸(stretch)。我知道为什么会发生失真,但确认和修复会很棒。这发生在使用链接中描述的代码的设备上,但我已针对swift3进行了更新classGameView

ios - SpriteKit : find all descendants of SKNode of certain class?

Thisquestion显示了如何找到属于某个类的SKNode的所有子节点,但是如果我们想要属于某个类的所有后代(例如,孙子)怎么办?在SpriteKit中是否有一种本地方法可以做到这一点,或者是根据上述问题创建解决方案的递归形式的唯一选择?SKNode文档突出显示了一个搜索功能,可以让您找到具有特定名称的后代,但是有没有办法按类而不是名称过滤后代?如果可以避免,我们不想为节点分配名称。我们正在使用Swift3。 最佳答案 只需将此扩展添加到您的项目importSpriteKitextensionSKNode{funcallDesc

Swift Spritekit 我检测到碰撞,但它多次读取碰撞

AppImage我有一面由4个不同颜色的矩形组成的墙,要穿过墙,球的颜色必须与墙上矩形的颜色相匹配。球会穿过墙,新的墙会出现。然而,当我检测到这种碰撞时,我得到了多个碰撞读数。我已经通过打印deadoralive来测试它,并且它打印了两次或更多次。funcdidBegin(_contact:SKPhysicsContact){ifletnodeA=contact.bodyA.nodeas?SKShapeNode,letnodeB=contact.bodyB.nodeas?SKShapeNode{ifnodeA.fillColor!=nodeB.fillColor{print("DEAD

swift - 从文件名加载 SpriteKit 关卡

对于我正在创建的游戏,我希望能够创建许多可以轻松加载的自定义关卡。每个级别都应该有一个.sks接口(interface)文件和它自己的SKScene子类.swift文件。现在,这是有效的:extensionSKScene{classfuncunarchiveFromFile(file:NSString,theClass:AnyClass!)->SKScene?{ifletpath=NSBundle.mainBundle().pathForResource(file,ofType:"sks"){varsceneData=NSData.dataWithContentsOfFile(path

在 SpriteKit 中使用 Swift 的 IOS admob

我遵循了我找到的文档(swift中的googleAd)。当我在我的SpriteKit场景中表演时。命令行“bannerView?.rootViewController=Self”出现错误。gamescene无法转换为UIViewControllerbannerView=GADBannerView(adSize:kGADAdSizeBanner)bannerView?.adUnitID="xxxxxxxxxxxxxxxxxxxxx"bannerView?.delegate=selfbannerView?.rootViewController=self//->Error"gamescene

swift - SpriteKit tilemaps 与弯曲或倾斜的地砖碰撞

我正在计划使用SpriteKit和Swift为iOS开发一款平台游戏。我研究了如何处理玩家Sprite的碰撞并偶然发现了这篇文章。http://www.learn-cocos2d.com/2013/08/physics-engine-platformer-terrible-idea/该文章建议您不要使用SpriteKit内置的物理引擎,而应自行实现移动、跳跃和碰撞处理等功能。RayWenderlichs网站上的平台教程提出了类似的方法。到目前为止一切顺利,但让我们谈谈玩家可以站立的地砖。只要瓷砖是矩形的并且具有平坦的表面(就像在RayWenderlich的教程中那样),自定义物理实现就