草庐IT

SKAction

全部标签

ios - 如何在 SKAction 中途反转 Sprite 所遵循的路径方向?

我有一个SKSpriteNode,它使用SKAction沿着圆形路径移动://createthepathourspritewilltravelalongletcirclePath=CGPathCreateWithEllipseInRect(CGRect(origin:pathCenterPoint,size:CGSize(width:circleDiameter,height:circleDiameter)),nil)//createafollowPathactionforourspriteletfollowCirclePath=SKAction.followPath(circlePa

xcode - 在第一个函数完成后调用第二个函数,它是使用 Swift 的 SKAction 重复计数

我有这个功能:funcmidGroundlevelMovingSlow(){letmoveLevelImage=SKAction.moveByX(-self.frame.size.width,y:0,duration:gameSpeed)letreplaceLevelImage=SKAction.moveByX(self.frame.size.width,y:0,duration:0)letmovingAndReplacingLevelImage=SKAction.repeatAction(SKAction.sequence([moveLevelImage,replaceLevelIm

ios - 在 SKAction.sequences 中运行多个 SKAction.runBlock 同时完成

我想在x轴上来回移动Sprite,因此决定结合使用序列和Action。基本上我想连续运行多个SKAction.runBlock。所以我创建了一个SKAction.sequence并在此操作中创建了多个SKAction.runBlock。它看起来像这样:runAction(SKAction.sequence([SKAction.runBlock({self.moveMad(self.size.width*0.1)}),SKAction.runBlock({self.moveMad(self.size.width*0.9)})]))funcmoveMad(posX:CGFloat){let

ios - 如何在操纵杆的方向上运行 SKAction

我正在创建一个游戏,但我无法让子弹朝操纵杆的方向发射。这是我的子弹的方法funcspawnBullets(){letbullet=SKSpriteNode(imageNamed:"bullet.png")bullet.zPosition=-5bullet.position=CGPointMake(hero.position.x,hero.position.y)bullet.xScale=0.25bullet.yScale=0.25bullet.physicsBody=SKPhysicsBody(rectangleOfSize:bullet.size)bullet.physicsBody

swift - SKCameraNode.position didSet 在使用 SKAction 移动时不会被触发

我有一个SKCameraNode的简单子(monad)类,我称之为InteractiveCameraNode。现在它非常简单:我需要在我的相机位置改变时发生一些事情。这是我所做的:classInteractiveCameraNode:SKCameraNode{//MARK:-PropertiesvarenableInteraction=truevarpositionResponders=[(CGPoint,CGPoint)->Void]()///Callseveryclosureinthe`positionResponders`arrayoverridevarposition:CGPo

swift - 如何检测 SKAction 是否正在运行

这是我的SKAction:naarRechts=SKAction.moveToX(positionX,duration:0.22)player.runAction(naarRechts)在0.22秒的持续时间内,我不希望此操作运行:ifCGRectIntersectsRect(player.frame,car.frame){player.position.x=car.position.x}什么神奇的代码行可以检测我的第一个SKAction是否正在运行,或者检测玩家是否在移动.. 最佳答案 您可以创建一个类变量varplayerIsI

xcode - AVAudioPlayer 和 SKAction.playSoundFileNamed(...) 导致内存泄漏

我的游戏基本完成了。检查Xcode中的泄漏。发现我每次玩游戏都会泄漏大约0.3MB。然后去了仪器并查看了持久数据。罪魁祸首1:SKTexture,被调用了很多但没有持续增长罪魁祸首2:希望我记得确切的语法,它类似于AudioSource,并且在调用此行时发生:SKAction.playSoundFileNamed(...)所以我转到游戏的“设置”页面并关闭了声音。再次测试内存占用,稳定。还意识到AVAudioPlayer正在泄漏,因为音效和主题通过不同的机制运行。我尝试在关闭时将AVAudioPlayer的实例varbackgroundAudio:AVAudioPlayer!设置为ni

swift - SKAction 每次调用两次(Swift 3)

这让我很生气。这段代码:funcnowPrint(){print("RUN")}run(SKAction.repeatForever(SKAction.sequence([SKAction.run(addSpawn),SKAction.run(nowPrint),SKAction.wait(forDuration:universalDuration/10)])))(其中universalDuration=100)似乎被调用了两次,因为控制台窗口每10秒打印两次“RUN”。此代码包含在sceneDidLoad()函数中,如果有区别的话。 最佳答案

ios - 使用 SKAction 改变 SKShapeNode 的位置

我有一个游戏,我需要一个SKAction将SKShapeNode的位置向上移动64个单位。这是我需要向上移动的对象的代码。varrect=SKShapeNode(rectOfSize(CGSizeMake(200,200))rect.position=CGPointMake(0,0)我想让它每隔几秒向矩形的y值添加64个单位。所以:rect.position=CGPointMake(0,64)然后rect.position=CGPointMake(0,128)如有任何帮助,我们将不胜感激。 最佳答案 如果你想在1秒内让你的rect平

ios - 通过 SkAction.followPath (iOS) 改变物体移动的速度

是否可以通过SKAction.followPath改变物体移动的速度?例如,假设我们使用下面的代码让球沿着矩形路径运动。该代码将在整个路径中使用恒定速度。但是,如果我们想改变物体沿矩形的速度怎么办?letgoPath=SKAction.followPath(ballPath!.CGPath,duration:2.5)movingBall.runAction(goPath)有效地让球沿着由不同速度的不同线构成的矩形路径(而不是一条路径)的唯一选择是什么?谢谢! 最佳答案 实现此目的的两种方法。第一种方式:您可以使用SKAction.s