草庐IT

Sprite-kit

全部标签

swift - 如何处理游戏中心的滞后峰值

我的游戏使用GameCenter作为计分板。在应用程序开始时,我要求GameCenter登录。问题是,在经过一段可变的时间后,GameCenter会弹出“欢迎回来......”的内容,这会在我的应用程序中造成巨大的延迟峰值,而该应用程序的资源已经很低了。我玩过完成处理程序,试图在横幅完成时找到某种回调……但什么也没有!我该如何处理?我有一个加载屏幕,我是否可以在它弹出之前完成加载?这是我现在使用的代码funcauthenticateLocalPlayer(){Holder.loggedIn=falseprint("StartAuthenticate")letlocalPlayer=GK

ios - 如何从我的 GameScene.swift 中关闭 ViewController?

问题如何从我的GameScene.swift中关闭ViewController?情况:我的SpriteKit游戏中有2个VC,如下所示:ViewController.swift----按播放----->GameViewController当玩家失败时,我想关闭GameViewController,以便玩家可以再次按下播放键。我在我的GameScene.swift中检查玩家是否丢失,并想从那里关闭GameVC。N.B.:用谷歌搜索没有成功。我尝试了什么:1)在我的GameScene.swift中创建一个gameVC实例并像这样关闭它:letgameVC=GameViewControlle

ios - SKAction.removeFromParent 不要用 SKAction.repeatActionForever 删除 Sprite

方法.removeFromParent()不会移除Sprite。怎么了?overridefunctouchesBegan(touches:Set,withEventevent:UIEvent?){guardtouches.first!=nilelse{return}letmyShot=SKSpriteNode()letmyShotAnimation=SKAction.repeatActionForever(SKAction.animateWithTextures(myShotTexture,timePerFrame:0.01))myShot.size=CGSizeMake(200,20

swift - 为 SKSpriteNode 设置名称?

我正在使用以下代码为游戏中的玩家生成随机图像。varplayerTexture=[SKTexture]()playerTexture.append(SKTexture(imageNamed:“red”))playerTexture.append(SKTexture(imageNamed:“blue”))playerTexture.append(SKTexture(imageNamed:“green”))letrand=Int(arc4random_uniform(UInt32(playerTexture.count)))letchosenColor=playerTexture[rand

swift - 改变受重力影响时物体下落的速度。(SpriteKit)

我有一个物体需要在游戏开始时从场景中掉落​​。当玩家点击屏幕时,对象会移回场景顶部。为了使物体下落,我将其设置为受重力影响。这工作正常,但问题是物体从屏幕上掉下来的速度太快了。我可以将物体下落的速度设置为不同的速度吗?如果是这样,我该怎么做。 最佳答案 您可以降低物理世界的重力。另一种选择是对每个对象施加相反方向的力。如果重力在y轴上为-9.8,您可以在y轴上施加+0-9.8的力来减慢物体的速度。编辑:改变质量不会影响速度。 关于swift-改变受重力影响时物体下落的速度。(Sprite

ios - 如何精确检测何时触摸 SKShapeNode?

我正在使用Swift和SpriteKit。我有以下情况:这里,每个“三角形”都是一个SKShapenode。我的问题是,我想检测何时有人触摸了正在触摸哪个三角形的屏幕。我假设所有这些三角形的碰撞框都是矩形,所以我的函数返回所有触摸的碰撞框,而我只想知道实际触摸了哪个碰撞框。有什么方法可以让碰撞箱与形状完美匹配,而不是矩形?这是我当前的代码:overridefunctouchesBegan(touches:Set,withEventevent:UIEvent?){lettouch=touches.firstlettouchPosition=touch!.locationInNode(se

ios - 在其他场景中显示插页式广告 - Admob、SpriteKit、Swift

我如何每x次用户死亡或每x次用户执行按钮等操作时显示来自admob的插页式广告?这就是我在GameScene上展示插页式广告并使用简单的if语句限制广告印象的方式。 最佳答案 仅当您拥有GoogleMobileAds.sdk并将googlemobileads模块导入到您的GameViewController和GameScene或GameOverScene中时,这才有效。我将向您展示跨场景广告实现和以编程方式限制广告展示。首先,在您的GameViewController中:importGoogleMobileAdsclassGameV

swift - 永远移动 Sprite

当我按下屏幕上的按钮时,我试图将Sprite向右移动。但是,当我尝试这样做时,我只有将Sprite移动到某个点的解决方案。所以...我希望Sprite永远向右移动,或者直到我做其他事情。这是在Xcode中使用SpriteKit中的Swift。overridefunctouchesBegan(touches:Set,withEventevent:UIEvent?){fortouch:AnyObjectintouches{letpointInTouch=touch.locationInNode(self)lettappedNode=nodeAtPoint(pointInTouch)lett

ios - SpriteKit : How to draw custom shapes without SKShapeNode?

从Apple的SKShapeNode类引用以及许多开发人员那里,我听说使用SKShapeNode绘制您想要经常在View上绘制的自定义形状是一个坏主意,因为它的性能很差。这是真的,一个带有一些自定义形状的简单应用程序使我的CPU占用率高达80%,并使用了大约80MB的内存(在设备上更好一些)。那么,我如何在不使用SKShapeNode的情况下绘制箭头等形状,因为我喜欢使用bezierpaths绘制的想法,因为我不需要关心显示大小。如何在不降低质量的情况下绘制带有纹理的箭头,因为当我移动我的触摸来拉伸(stretch)箭头时它会拉伸(stretch)我的图像。使用SKShapeNode执

swift - gamescene.swift 中的背景图片

我需要编写什么代码才能将图像(已经在assets.xcassets中)显示为GameScene.swift的背景? 最佳答案 首先,您可以使用scaleMode.resizeFill调用您的场景,它修改SKScene的实际大小以与SKView完全匹配:scene.scaleMode=.resizeFill.resizeFill–场景未缩放。它只是调整大小以适合View。由于场景未缩放,因此图像将全部保持其原始大小和纵横比。内容将全部保持相对于场景原点(左下角)。默认情况下,场景的原点位于View的左下角。所以,场景初始化为高1024