草庐IT

Sprite-Kit

全部标签

swift - 如何以速度移动平台

我需要移动一个节点而不是SKAction来使用速度因为在这个问题MovingNodeontopofamovingplatform我希望节点随平台移动,但由于平台没有速度,我无法使用EpicByte建议这就是我移动节点的方式//Movenodeverticallyletup=SKAction.moveByX(0,y:200,duration:moveDuration);letdown=SKAction.moveByX(0,y:-200,duration:moveDuration);node.runAction(SKAction.repeatActionForever(SKAction.s

ios - 在 SpriteKit 节点上应用脉冲

我正在开发一个SpriteKit游戏,我有一个名为hero的节点,它会躲避接近的恶棍。我对applyImpulse的跳跃Action有疑问,在这种情况下,英雄可以反复跳跃和飞行,而不是躲避坏人。我使用了一个bool变量来更改定时器值的状态,使其在3秒内仅跳转一次,但这是行不通的。这是我的代码overridefunctouchesBegan(touches:NSSet,withEventevent:UIEvent){ifisGameOver==true{self.restart()}ifisstarted{self.runAction(SKAction.playSoundFileName

swift - SKSpriteNode 碰撞识别速度不够快

我有一个SKSpriteNode(“称为球”),它是通过向其physicsBody施加脉冲来启动的。在我的didBeginContact方法中,我检查节点是否与障碍物发生碰撞。如果是这样,我希望SKSpriteNode立即停止移动(例如,“坚持”到它碰撞的对象)。问题是,当意识到球已经与障碍物发生碰撞并且球的速度设置为0时,球已经反弹,而不是碰到它碰撞的障碍物,现在是30像素左右离开funcdidBeginContact(contact:SKPhysicsContact){ballInMidAir=falsevarfirstBody:SKPhysicsBody=contact.body

Swift:有没有办法制作一个使用多个对象的 SKAction 序列?

我有一个生成敌人然后将它们移动到屏幕上的序列,它本质上是这样写的moveAndRemoveEnemy=SKAction.sequence([moveEnemy,removeEnemy])enemy.runAction(moveAndRemoveEnemy)问题是我想在序列中添加另一个Action,在敌人被移除后更新分数。我尝试制作一个单独的方法来增加分数,将其称为SKAction.runBlock()并将其插入到序列中,如letupdateScore=SKAction.runBlock{self.increaseScore()}moveAndRemoveEnemy=SKAction.s

ios - 如何在 SKView 之上添加 SCNView

我正在尝试在SKView之上添加一个SCNView。我的层次结构以UIViewController开始。从那里,我在UIViewController的View之上显示了一个SKScene。然后我添加了几层SKSpriteNodes。从视觉上来说,我想在SKSpriteNodes的顶层之上添加一个SCNView来显示一行SCNBoxes。除了创建另一个UIViewController,将我的所有组件添加到该新Controller之上,然后将其添加到我当前现有的ViewController之外,我还有什么办法可以做到这一点?我会很感激Swift代码的解决方案,但我能够读/写Objectiv

swift - SpriteKit - 如何检查 SKNode 之间的交叉点?

我正在测试一个非常基础的项目,我似乎无法让intersectsNode函数正常工作。在我的GameScene.swift文件中,我创建了一个名为world的SKShapeNode,并在其中创建了另一个名为player的SKShapeNode和一个旋转的SKShapeNode称为spinningGreenSquare。在我的GameViewController.swift文件中,我设置了一个touchesMoved函数来查找触摸的位置,location,并移动player给它。现在,正如您将在下图中看到的,我然后测试2是否相交,如果返回值为真,则执行一些操作。但是,当我运行我的项目时,p

ios - Sprite-kit:检测左右触摸

在我尝试构建的新游戏中,我想知道用户何时触摸了屏幕的左右两侧BOTH以执行某些逻辑操作。我的代码:overridefunctouchesBegan(touches:Set,withEventevent:UIEvent){/*Calledwhenatouchbegins*/fortouchin(touchesas!Set){letlocation=touch.locationInNode(self)varisRight:Bool=falsevarisLeft:Bool=falseif(location.xself.size.width/2){//isRight=trueprintln("

ios - 如何使用 Swift 制作椭圆 SKPhysicsBody

我创建了一个椭圆SKShapeNode并且我希望该形状具有实体,但是我找不到椭圆的SKPhysicsBody初始值设定项。这是椭圆形的代码attackCircle=SKShapeNode(ellipseOfSize:CGSize(width:1000,height:400))如果我没有正确提出问题,请提前道歉。这是我在网上提出的第一个问题。 最佳答案 您想使用CGPath将其设置为椭圆。有一个适用于iOS7+的构造函数,它允许您调用:attackCircle=SKShapeNode(ellipseOfSize:CGSize(widt

ios - 无法将自定义字体添加到 Xcode

我正在尝试将下载的字体添加到Xcode,并且我已经根据此链接执行了每一步:http://codewithchris.com/common-mistakes-with-adding-custom-fonts-to-your-ios-app/我将字体添加到我的Xcode项目中,将其包含在复制捆绑资源(构建阶段)中,并在应用程序提供的字体中键入它(在Info.plist中)。然后我在didMoveToView的GameScene.swift中输入了这个它适用于其他字体,但不适用于此字体。这真的让我很沮丧,我不知道问题出在哪里,谢谢。 最佳答案

ios - 节点未在 Swift 2 和 SpriteKit 中加载纹理

所以我正在制作一款落沙益智游戏,您必须让沙粒进入目标。在Swift2、iOS9、xCode7更新之前,我的节点运行良好。但是现在,当我加载游戏时,它并没有正确加载所有节点。以此为例:(我注释掉了大部分我知道不是问题的细节,例如标签的定位和颜色)overridefuncdidMoveToView(view:SKView){self.physicsWorld.gravity=CGVectorMake(0.0,-4.8)//RateofGravityissethere//Backgroundbg=SKSpriteNode(texture:SKTexture(imageNamed:"setti