- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我开发游戏已经有一段时间了,我开始意识到我的应用程序很快就会耗尽设备电池。我通过 XCode 仪器测量了能量消耗,一般在 17/20 范围内。我有一些背景动画,禁用它们似乎确实有帮助。出于好奇,我使用以下简单代码启动了一个项目:
import SpriteKit
import GameplayKit
class GameScene: SKScene {
let NumberOfSprites = 1
override func didMove(to view: SKView)
{
view.showsDrawCount = true
view.showsFPS = true
view.showsNodeCount = true
// Set scene to 414x736 with anchorPoint in the bottom left corner
self.anchorPoint = CGPoint(x: 0, y: 0)
self.size = CGSize(width: 414, height: 736)
var spriteArray = [SKSpriteNode]()
for _ in 0..<NumberOfSprites
{
let sprite = SKSpriteNode(color: .black, size: CGSize(width: 50, height: 50))
sprite.position = CGPoint(x: Int(arc4random_uniform(UInt32(414))), y: Int(arc4random_uniform(UInt32(736))))
self.addChild(sprite)
spriteArray.append(sprite)
}
let moveAction = SKAction.move(by: CGVector(dx: 50, dy: 50), duration: 1.0)
let moveAction2 = SKAction.move(by: CGVector(dx: -50, dy: -50), duration: 1.0)
let repeatAction = SKAction.repeatForever(SKAction.sequence([moveAction, moveAction2]))
for sprite in spriteArray
{
sprite.run(repeatAction)
}
}
}
此代码将在屏幕上放置一个黑框,并将其移动 x+50、y+50,然后无限期地移动 x-50、y-50。以下是这样做对能源的影响。我测量了设备的平均能源使用水平约为 7-8/20。
我能够添加多达 200,000 个节点(只需更改 NumberOfSprites 变量),并且能量影响增加到 18/20。这对我来说当然是有意义的,但我发现有趣的是,我的应用程序在给定时间屏幕上可能有 120 个节点,只有一个充满操作的句柄,却产生几乎同样多的能量消耗。
我的问题是:如果一个简单的 Action 会造成如此大的能量影响,开发者如何在他们的游戏中处理这个问题?应用商店中有许多复杂的游戏,它们似乎并没有这么快耗尽电池电量。我错过了什么吗?
预先感谢您的帮助。
最佳答案
高 CPU 消耗通常是绘制计数问题。您可以通过利用 Sprite 图集来减少绘制次数,尽管它们有大小限制和其他值得在 Swift 文档中查看的怪癖。特别值得注意的是,当您将许多 Sprite 加载到图集中时,当访问该图集中时,它会将所有这些对象放入内存中,因此当您寻求减少 CPU 负载时,应该注意此处的内存使用情况。我还要补充一点,大多数具有大量动画的游戏都具有非常高的能耗,因此“您可以做什么”是有限的。
关于ios - SpriteKit 电池/能量消耗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47103149/
我开发游戏已经有一段时间了,我开始意识到我的应用程序很快就会耗尽设备电池。我通过 XCode 仪器测量了能量消耗,一般在 17/20 范围内。我有一些背景动画,禁用它们似乎确实有帮助。出于好奇,我使用
我有两个原型(prototype)电池。如果 messagesArray[indexPath.row] 值为“”,则出现一个,如果该值包含字符,则出现另一个。其中一个单元格的行高大于第二个单元格的行高
我有一个弹出窗口,弹出窗口内部是一个相机按钮,我的相机工作正常,但顶部的电池符号与相机重叠,下面是屏幕截图。 如果有人知道答案,我们将不胜感激。 最佳答案 您可以隐藏该 View 的状态栏,这样它就不
有没有办法从 Android SDK 获取电池信息?比如剩余电池生命周期等等?我无法通过文档找到它。 最佳答案 这是一个简单的示例,可以让您了解电池的使用量、电池电压和温度。 将以下代码粘贴到 Act
我想删除状态栏(显示时间和电池状态)。就像在涂鸦跳跃或其他游戏中一样。 我怎样才能做到这一点? 谢谢 :) 最佳答案 http://iphonesdkdev.blogspot.com/2008/06/
已经阅读了关于同一主题的其他 SO 帖子,并且在以下方法之间做出决定: Thread 1与 Thread 2与 simple onLocationUpdate() 有人可以帮助我了解所有这些的利弊吗?
最近 google 推出了推送到设备服务,但它仅适用于 2.2 及更高版本。 我的应用程序中需要一个类似的系统,并且我正在尝试绕过限制。 问题是电池生命周期。由于必须立即通知用户有关服务器上的更改,我
Closed. This question needs to be more focused。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅关注editing this post一个问题。 6
我有两个原型(prototype) TableViewCells。现在,一个只是另一个的复制粘贴。 BasicCell 和 BasicCell2 。我刚刚为 BasicCell2 复制了 BasicC
我目前正在为 iPhone 开发一个聊天客户端。服务器端有一个带有 Socket.IO 的 node.js,在 iPhone 上有一个 Socket.IO 客户端( https://github.co
所以我发现没有公开的方法来获取 watchKit 中的电池电量。 所以没有UIDevice.currentDevice().batteryLevel和WKInterfaceDevice不接缝有货。 在
由于 Google 在其网站上提供了适用于 Android L 的更新 SDK。我一直在尝试测试新的电池历史记录功能。 Google API 概述 website声称该工具在 sdk/tools 下可
我已经安装了全新的 Catalina 和 Android Studio。事实证明,当我启动模拟器时,模拟器进程会占用大量 CPU 周期。查看 adb shell 中的 top,我得到了一些我不理解的进
我修复了 iOS 7 的问题,导航栏是重叠 TableView 。 我用这个代码 //for help navigation bar overlap if ([self respondsToSelec
今天,小爱同学官微发布消息宣布,Redmi 小爱触屏音箱 Pro 正式推出,该机搭载 8 英寸屏幕,配备电池可不用时刻连接电源,售价 499 元,新品将于 9 月 9 日 0 点正式开售。 作
我是一名优秀的程序员,十分优秀!