草庐IT

Sprite-kit

全部标签

iOS模拟器测试多人游戏

我正在使用iOSSpriteKit和Socket.io创建一个简单的多人游戏,在多个模拟器(或实际iOS设备)上构建和测试它并能够查看日志的优雅方式是什么?我看到一些像这样的帖子Xcode6:Runtwoinstancesofthesimulator你可以运行两个模拟器,但我必须在一个模拟器上运行它,停止它并启动第二个。这样一来,它使测试变得复杂,而且我无法看到第一个模拟器的日志。有没有更好的解决方案? 最佳答案 最好的使用方法是将它安装在一台(或多台)设备上,让它们运行而不必立即查看日志。然后您可以直接从Xcode运行模拟器或设备

ios - AdMob Ios 导致帧率下降

一段时间以来,我一直遇到游戏延迟的奇怪问题,我终于找到了罪魁祸首。AdMob。在使用和不使用admob对我的应用程序进行一些基本测试后,我意识到Admob每加载10次左右就会导致10+fps下降一次。这是我的AdMob代码。funcinitializeBanner(){//Createabanneradandaddittotheviewhierarchy.bannerView.adUnitID="ca-app-pub-8237297232584070/6035957145"bannerView.rootViewController=viewControllerbannerView.fr

ios - 如何加载内存中的文件以获得更好的场景转换?

当我过渡到我的游戏场景时,会出现巨大的延迟,并且FPS下降得非常低。我知道这是由于场景中的大图像所致。这些图像用于Assets中的Skspritenodes。我正在循环一个场景。当玩家输掉游戏时,游戏会通过转换到同一场景重新开始。无论如何,我可以将图像加载到内存中并永远保存在那里,而不是每次移动到游戏场景时它们都被删除和加载吗?如果您要建议纹理和图集预加载。请具体说明如何以及在何处使用预加载代码。还有如何以及如何设置图集纹理和使用它们。我已经尝试过这种方法,不幸的是它不起作用。也许我做错了。谢谢, 最佳答案 从评论中可以看出,有多种

iOS - 如何根据元素的数量调整屏幕上元素的大小

因此,我正在使用Spritekit开发一款游戏,该游戏使用Sprites金字塔(让我们说一个简单的例子是圆圈)。用户可以选择他们希望在游戏中拥有的Sprite行数。Sprite要形成一个金字塔,所以如果你有1行,你就有1个Sprite节点。它越往下增加2(您选择的行越多)-创建金字塔形状。因此,如果用户选择3行,游戏板将如下所示:欧哦哦哦OOOOO但是,当它达到5行时,它就失去了金字塔形状,因为屏幕只有这么宽,而且它必须将所有元素都放在屏幕上(元素在更靠下的行中更加困惑)。我的问题是,要解决这个问题,我需要做什么才能根据选择的行数调整金字塔的大小并更改其元素之间的间距?我必须将间距乘以

ios - 如何复制带 child 的 SKNodes

我如何复制一个SKTileMapNode或一个包含两个或多个SKTileMapNode的SKNode。结构是:背景节点(空)SKTileMapNodeSKTileMapNode我很乐意在场景中执行以下操作:guardletbackground=self.childNode(withName:"BackgroundNode")else{return}background0=backgroundbackground1=background.copy()self.addChild(background1)这导致不可见的东西。节点已复制,但我仍然看不到任何内容,并且SKTileMap的值未正确

ios - 触摸屏幕/控件时移动

学习了SpriteKit的基础知识后,我想知道如何实现这个简单的控制机制:在持有View/节点/控件的同时向/移动节点施加力.我只能找到施加一次力的方法。 最佳答案 你知道触摸什么时候开始,什么时候结束。这意味着您需要一面旗帜。我们称它为isBeingTouched在你的触地方法上,设置isBeingTouched=true在您的修饰方法中,设置isBeingTouched=false现在我们唯一需要的是一个连续的循环来不断地检查它。最好的地方是更新。所以在你的更新中,你说ifisBeingTouched==true{updatey

ios - Scene Kit节点不旋转

我试图通过场景工具包节点旋转,但它没有旋转。我想让它绕y轴旋转。它是一个球体。letnode=SCNNode()node.geometry=SCNSphere(radius:1)node.geometry?.firstMaterial?.diffuse.contents=UIImage(named:"diffuse.png")node.geometry?.firstMaterial?.specular.contents=UIImage(named:"specular.png")node.geometry?.firstMaterial?.emission.contents=UIImage

ios - Swift 3 Game Center Leaderboard 不保存分数的值

我有一个问题,帮助我理解主题。老实说,我已经花了几天时间研究这个主题,但还没有奏效。SpriteKitSwift3上有一个简单的游戏。我正在尝试实现LeaderboardGameCenter。iTunesConnect已设置,排行榜已创建,测试用户已创建。当我开始游戏时,用户正常登录。显示创建的棋盘的按钮,我可以在游戏中心打开我的排行榜。问题是排行榜中得分的值没有更新。我的游戏分数存储在变量“score”中在gamescene.swift中,我有两个用于保存和覆盖的函数:funcsaveHighscore(gameScore:Int){ifGKLocalPlayer.localPlay

ios - FBAccount Kit 国家代码本地化

我正在将FBAccountKit集成到我的应用程序中。但我对国家代码有一个疑问。本地化似乎不起作用。我已将AccountKit+AccountKitStrings.bundle添加到我的应用程序中。我在这里错过了什么?我正在使用模拟器(iOS11)运行该应用 最佳答案 我遇到了同样的问题,由于我导入项目的方式,我没有将“AccountKit.bundle”添加到我的项目中。在Alvins的案例中,AccountKitStrings.bundle应该“拖放”到项目中,而不是链接。 关于io

ios - SKSpriteNode 最近邻使用 SKShader 片段着色器

我正在尝试在我的spritekit2d像素艺术游戏中应用调色板交换功能,但似乎在应用SKShader时忽略了SKSpriteNode纹理上的filteringMode。因此,我认为我需要先应用最近邻着色,然后再执行调色板交换逻辑。根据在着色器玩具上找到的一些代码,我做了这个尝试,这似乎是正确的方向,如果坐标被归一化并且(0.0,0.0)是左下角并且(1.0,1.0)右上角,但结果太block状了。https://www.shadertoy.com/view/MllSzX我对shader.fsh文件的改编:voidmain(){floattexSize=48.0;vec2pixel=v_