Ios Spritekit游戏在iPad模拟器上出现明显滞后
背景: 我是一名高中计算机科学教师,我想提出一份有趣的作业,测试我学生的编程知识。我几乎没有使用SpriteKit编程iOS游戏的经验,但我认为在竞争激烈的环境中,这将是一种有趣的方式来整合许多课程概念 游戏: 每个学生将在一场对头战斗中互相较量,他们将为一艘能够向敌人移动和发射导弹的宇宙飞船的人工智能编程。每名玩家从20分开始,每次被导弹击中,他们的总得分就会减少1分,直到一名玩家命中0分,游戏结束。每个玩家只能得到10枚导弹,所以他们必须明智地使用它们。如果导弹超出视野范围或击中另一个对手,则会补充弹药 问题: 我已经连续几年完成这项任务,每年只做一些小的改动。然而,今年在测试期间,一旦游戏开始,游戏的速度就下降到9帧左右。显然,这会带走游戏的很多乐趣,并且由于延迟而使调试变得痛苦 代码结构 节点 只有几个SklabelNode用于显示球员姓名和分数。 飞船都是节点,每个都包含一个由10枚导弹组成的阵列,这些导弹也是节点。宇宙飞船和导弹都有各自的类别,定义了它们的属性和行为。 还使用了一个背景图像。 总的来说,只有24个对象被添加到游戏场景中,这一点永远不会改变 课程Ios Spritekit游戏在iPad模拟器上出现明显滞后,ios,swift,sprite-kit,skspritenode,Ios,Swift,Sprite Kit,Skspritenode,背景: 我是一名高中计算机科学教师,我想提出一份有趣的作业,测试我学生的编程知识。我几乎没有使用SpriteKit编程iOS游戏的经验,但我认为在竞争激烈的环境中,这将是一种有趣的方式来整合许多课程概念 游戏: 每个学生将在一场对头战斗中互相较量,他们将为一艘能够向敌人移动和发射导弹的宇宙飞船的人工智能编程。每名玩家从20分开始,每次被导弹击中,他们的总得分就会减少1分,直到一名玩家命中0分,游戏结束。每个玩家只能得到10枚导弹,所以他们必须明智地使用它们。如果导弹超出视野范围或击中另一个对手,
- iMac(21.5英寸,2013年末)
- 处理器2.9 GHz Intel Core i5
- 内存8 GB 1600 MHz DDR3
- 图形NVIDIA GeForce GT 750M 1024 MB
它不是最新的版本,但与学生们目前使用的非常相似。首先在设备上运行游戏,缩小问题范围,并确保问题在模拟器上 在其中一个iMac上使用乐器配置游戏。这将让您看到是什么导致帧速率如此低 选择Product>Profile in Xcode以在Instruments中评测您的项目。从模板列表中选择时间分析器仪器。以下文章介绍了如何使用时间剖面仪:
由于你的学生必须在他们的Mac电脑上测试游戏,另一种选择是制作Mac版的游戏。与iOS模拟器相比,这款游戏在Mac电脑上本机运行得更好。SpriteKit代码在Mac和iOS上都是相同的。主要区别在于在Mac上处理鼠标事件,而不是在iOS上处理触摸事件。Xcode有一个跨平台的游戏项目模板,可以让你制作一个同时在Mac和iOS上运行的游戏。我不清楚学生的代码是在模拟器还是在设备上运行——听起来像模拟器。通过模拟器获得的FPS通常明显低于在实际设备中看到的FPS,因此已经运行的(特别是,如果多个模拟器正在运行)可能会对FPS产生深远的影响。是的,学生们正在模拟器上运行他们的代码。他们每个人都有一台单独的计算机(Mac),可以在上面构建、调试和测试代码。我们没有足够的设备(iPad)来部署游戏进行测试。所以,每次他们修改策略时,他们都会在Mac电脑上的模拟器中运行他们的代码,这是令人沮丧的滞后。Mac是什么操作系统?苹果公司放弃了对OpenGL的支持,所以你可能会遇到OpenGL中不存在的金属缺陷——看不见并清除“冒烟的枪”,这将是这个问题的核心,所以我没有一个CLE