草庐IT

SKAction

全部标签

swift - 如何按角度移动 SpriteNode?

我正在尝试创建一个小游戏,其中SpriteNode(又名玩家)以恒定速度垂直向上移动。我想用它的角度向左或向右转向。但是,我无法使用其角度正确移动播放器。感谢您的宝贵时间。这是我写的部分代码:overridefunctouchesBegan(_touches:Set,withevent:UIEvent?){iflettouch=touches.first{letlocation=touch.previousLocation(in:self)iflocation.x=self.size.width/2&&location.yself.size.height/2{//GoUpprint("

swift - runAction() 内的变化值不变

我有一个运行Action循环,生成一个敌人然后等待并生成另一个。目的是分数越高,敌人产生的速度就越快。但目前的代码无论如何都以相同的速度生成敌人。我一直在overridefuncupdate(currentTime:NSTimeInterval)方法中更新速率,所以我不知道哪里出了问题。overridefuncupdate(currentTime:NSTimeInterval){spawnRate=2.0-(0.1*(Double)(((Double)(Score))/(10.0)))if(spawnRate 最佳答案 当前发生的事

swift - 如何在不重叠的情况下生成多个节点?

我的屏幕上每0.2-5.0秒生成一次节点,如下所示:overridefuncdidMoveToView(view:SKView){backgroundColor=UIColor.whiteColor()runAction(SKAction.repeatActionForever(SKAction.sequence([SKAction.runBlock(blackDots),SKAction.waitForDuration(1.0)])))}funcrandom()->CGFloat{returnCGFloat(Float(arc4random())/0xFFFFFFFF)}funcra

ios - 基于 Swift SpriteKit 更改背景图像分数

我正在使用Swift和SpriteKit开发游戏。我希望背景在一定分数下发生变化。这是代码:classGameScene:SKScene{varbg=SKSpriteNode()overridefuncdidMoveToView(view:SKView){makeBg()}funcmakeBg(){letbgTexture=SKTexture(imageNamed:"img/bg.png")letmoveBg=SKAction.moveByX(-bgTexture.size().width,y:0,duration:9)letreplaceBg=SKAction.moveByX(bgT

swift - 在子类 SKSpriteNode 中创建 SKSpriteNode 是一种好习惯吗?

这里的代码子类化SKSpriteNode并初始化它接受SKSceneimportSpriteKitclassSpaceship:SKSpriteNode{varspaceship:SKTexturevarhitpoint=100varthescene:SKScenevarlazer5:SKSpriteNode?varlazer5_pathofdestruction:SKSpriteNode?init(skScene:SKScene){thescene=skSceneself.spaceship=SKTexture(imageNamed:"Spaceship")super.init(te

swift - for循环不按顺序执行代码(swift + spritekit)

这是我的代码:overridefuncdidMoveToView(view:SKView){/*Setupyourscenehere*/letorigin=CGPoint(x:CGRectGetMidX(self.frame),y:CGRectGetMidY(self.frame))letdelay=SKAction.waitForDuration(2.0)for(vari=0;i基本上,我的球会在圆圈上的随机点上生成并向中心移动。但我遇到的问题是,无论我如何重新安排事物(或重写事物,即尝试不同的循环或定义用于生成球和球运动的函数并简单地从switch语句内部调用它们)所有球同时产生。

swift - 如何一次生成多个相同的 SpriteNode?

所以我有3个不同的障碍物,它们随机产生并在3秒后被移除,但是如果例如Obstacle1已经产生并且随机数告诉程序产生另一个Obstacle1,我得到一个错误"Terminatingappduetouncaughtexception'NSInvalidArgumentException',reason:'AttempedtoaddaSKNodewhichalreadyhasaparent"这里是Obstacle1的代码,其他两个几乎一样只是名字不同:函数createObst1(){self.addChild(obst1)path=UIBezierPath(arcCenter:CGPoin

swift - 是否有调用函数的 SKAction?

所以我有一个创建Obstacle的函数,我想制作一个包含两个元素的序列:随机延迟(随机数)和调用Obstacle函数。我首先使用Timer执行此操作,但使用Actions会容易得多。 最佳答案 SKAction.run()然后将您想要的任何函数放入闭包中即可。 关于swift-是否有调用函数的SKAction?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/41834256/

swift - 蛇在垂直方 block 中移动

我正在尝试使用SpriteKit制作蛇游戏(就像旧诺基亚手机中的游戏)。问题是,当蛇的方向改变时,蛇在一个静止的垂直block中移动,并没有得到L形(如图所示)。为了进入上下文,我有一个名为SKDSpriteNode的类,它与SKSpriteNode相同,但有一个额外的direction属性;Snake类有direction和length属性。有一个snakeBody属性,类型为[SKDSpriteNode],包含蛇体的节点。蛇的方向在游戏开始时分配给.up,然后由用户的滑动分配。顺便说一句,changeDirection方法在蛇的方向改变时被调用(使用didSet)。这是代码和图片:

swift - 播放声音文件时启动时出现白屏 SKAction

我正在尝试获取要在GameScene.swift文件中播放的背景声音文件。但是每当我这样做并调用run.SKAction时,屏幕都会变白并且我会听到很多静电噪音直到它崩溃。当我注释掉run.SKAction时,游戏正常开始。我尝试将文件格式更改为WAV、MP3、AAC、CAF。但同样的事情发生了。我检查了一下我是否拼错了什么,但我没有。它给我一条消息:“来自调试器的消息:由于内存问题而终止”重要说明:“waitForCompletion设置为TRUE它似乎工作正常,在配乐的开头有一点静态然后它正常播放。但是当“waitForCompletion”设置为FALSE时我得到白屏。我也有时会