.png 动画在 spritekit 中性能缓慢

2024-02-23

我的项目中有一个 .png 动画,包含 700 张图片,尺寸为 150 像素 x 150 像素。

它工作正常,但每次动画开始时,整个游戏都会冻结约 0.1 秒。喜欢它的加载,但我在 initWithSize 中实现了 .png 数组。像这样:

SKTextureAtlas *barrierUfoAtlas = [SKTextureAtlas atlasNamed:@"BarrierUfoAnimation"];
NSArray *barrierUfoAtlasNames = [barrierUfoAtlas textureNames];
NSArray *sortetBarrierUfoAtlasNames = [barrierUfoAtlasNames sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
NSMutableArray *barrierUfoTextures = [NSMutableArray array];

for (NSString *filename in sortetBarrierUfoAtlasNames) {
    SKTexture *texture = [barrierUfoAtlas textureNamed:filename];
    [barrierUfoTextures addObject:texture];
}
self.barrierUfoAnimation = [SKAction animateWithTextures:barrierUfoTextures timePerFrame:0.024];

然后在玩大约 1-2 分钟后。动画正在开始。 此时不需要加载任何内容,只需启动动画即可。 有什么办法可以改善吗?


This is 多种方法之一预加载:

@implementation GameScene {
SKTextureAtlas *myAtlas1;
BOOL loadingComplete;
}

-(id)initWithSize:(CGSize)size {
    if (self = [super initWithSize:size]) {

    // the usual stuff...

    loadingComplete = false;
    [self loadMyAtlas1];
    }   

    return self;
}

-(void)loadMyAtlas1 {
    myAtlas1 = [SKTextureAtlas atlasNamed:@"MyAtlasName"];
    [SKTextureAtlas preloadTextureAtlases:[NSArray arrayWithObject:myAtlas1] withCompletionHandler:^{
    [self finishedLoading];
    }];
}

-(void)finishedLoading {
    // other stuff you might do here
    loadingComplete = true;
}

-(void)update:(CFTimeInterval)currentTime {
    if(loadingComplete) {
        // run game code
    } else {
        // wait for the water to boil
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.png 动画在 spritekit 中性能缓慢 的相关文章

  • Sprite Kit:大量带有 Bit Blitting 的 sprite(1000+)

    我正在尝试使用 SpriteKit 创建一个场景 其中包含数千个精灵 500 2000 每个精灵只是一个 1x1 的白色像素 甚至不需要为它们使用纹理 立即将这么多精灵直接添加到场景中是不可能的 或者至少我这么认为 在 iPhone 6 上
  • ARKit 中的 ChromaKey 视频

    我正在尝试在 ARKit 中对视频进行色度键控 我所做的与 Felix 在这里所做的非常相似 SKScene 中的 GPUImageView 作为 SKNode 材质 在 ARKit 上播放透明视频 https stackoverflow
  • Swift 3:在 SKSpriteNode 上切一个洞

    首先 我知道 这个问题在这里已经有很多答案 但它们并没有帮助我解决这个问题 我编写了一个小游戏 第一次启动时有一个小教程 其中逐步解释了游戏的每个元素 在每一步中 我都想强调其中一个要素 所以我在元素前面放置了一个 alpha 为 0 9
  • 当身体从圆形变为矩形时,无法识别联系人

    在来自的帮助下here https stackoverflow com questions 32352886 how to set physics properties for a circle so it follows given pa
  • AVAudioPlayer 播放时游戏滞后

    我正在创建一个游戏 用户用喷气背包控制角色 当喷气背包与钻石相交时 我将钻石添加到它们的总数中 然后播放声音 然而 声音会使游戏暂停十分之一秒左右并扰乱流程 这是我正在使用的代码 var diamondSound NSBundle main
  • SKEase动作,如何使用Float改变Action Setter Block?

    在下面的用例中 我尝试为lineWidth of an SKShapeNode SKEase 是精彩的一部分SpriteKit缓动 https github com craiggrummitt SpriteKitEasingSwift来自
  • SpriteKit 分数是随机的

    我正在使用 SpriteKit 创建一个游戏并尝试增加碰撞时的分数 由于某种奇怪的原因 每次分数增加时都是随机数 而不仅仅是 1 In the didBeginContact方法我有子弹和外星人之间的碰撞 每次碰撞时 我希望分数增加 1 除
  • 使用 CGMutablePath 创建路径会创建指向错误 CGPoint 的线

    我打算在屏幕上用 2D 箭头显示 AR 对象的信息 所以我用了projectPoint获取物体在屏幕中对应的位置 我有这个函数返回将节点的 3D 位置转换为 2D 并CGPoint显示信息文本 func getPoint sceneView
  • runBlock 发生后延迟 SKAction.sequence 中的下一个操作(Swift)?

    The duration财产为moveTo在 a 内时不被跟随runBlock 允许序列中的后续操作立即执行 而该操作应该只在之后执行duration秒 代码A 正确执行的序列 let realDest CGPointMake itemA
  • SpriteKit和粒子碰撞

    我有一个粒子发射器 我想在粒子碰撞某些物理体时检测到它 SpriteKit API 中是否有本地方法可以做到这一点 或者我是否需要 作弊 单个粒子不能碰撞 不是用物理学 也不是任何其他方式 您甚至无法获得有关单个粒子的任何信息 您无法访问它
  • Sprite Kit - SKShapeNode 路径未绘制四边形曲线

    我一直在研究苹果新的 Sprite Kit 并且已经使用它有一段时间了 然而 当我尝试绘制曲线路径时遇到了问题SKShapeNode 它看起来只是画一条直线 这是我遇到的问题的一个非常简单的例子 尝试绘制一个CGPath for an SK
  • 如何在 SKSpriteNode 上创建脉冲效果?

    您好 我想了解如何创建视觉脉冲效果 如下面的视频所示 https www youtube com watch v uiHj KZWjpU https www youtube com watch v uiHj KZWjpU 我点击了视频中发布
  • 如何获取通过SpriteKit编辑器创建的项目的SKSpriteNode?

    我使用 SpriteKit 使用 Objective C 在 XCode 中创建了一个相当简单的 此时是实验性的 游戏 我知道如何手动创建 SKSpriteNode 对象并将其添加到 SKScene 但我有点尝试做相反的事情 我在 XCod
  • 为什么我的物理体在 spritekit 中发生几次碰撞后会相互穿过?

    我正在开发一款游戏 其中涉及角色在平台上跳跃 例如涂鸦跳跃游戏 问题是角色在与平台发生几次碰撞后将穿过平台 对于跳跃我使用restitution player physicsbody restitution 1 0我根据加速度计数据对角色的
  • 如何在 iOS 11 中使用 scenekit - ARKit 动态创建 3D 对象的注释?

    我正在努力使用创建注释overlaySKScene与此类似的东西 https sketchfab com models 1144d7be20434e8387a2f0e311eca9b1 https sketchfab com models
  • 具有内边缘的 SpriteKit SKPhysicsBody

    我创建了一个SKSpriteNode比如说Map它有一个我定义的边缘路径 一些简单的多边形形状 我想弄清楚的是如何添加几个other将充当内部边缘的边缘路径Map 就好像整个 地图 实际上确实有holes 某种内部边界形状可以与Map整体
  • 调用 SKLabelNode 时出现延迟?

    我在从一个版本转换时遇到了轻微延迟 滞后 的问题SKScene到另一个 通过注释掉各种代码 我将其范围缩小到SKLabelNode 我的猜测是 这就是它在调用时加载 缓存字体 这会导致在声明新字体时出现小的延迟 口吃SKScene 有没有其
  • SpriteKit:如何使用混合模式在图层中打孔

    我有一个简单的场景 添加了一些元素 现在我想专注于一个带有遮罩的特定元素 在与我想要关注的元素相同的位置切割整个元素 与我们在某些游戏第一次启动时看到的显示某种教程非常相似 基本上我添加了一个全屏层alpha 0 7 因此用户仍然可以看到所
  • 在 Swift 中将动态 Int 变量从一个类传递到另一个类

    我是 swift 2 的新手 我陷入了将变量从一个类传递到另一个类的过程中 我有一个类 GameScene 我有一个公共变量score并且在更新功能中不断更新 我想发送score两个节点相互碰撞时的值 一旦它发生碰撞 我就会使用 mainv
  • 我的游戏中应该有多少个视图控制器?

    我开始使用 spritekit 构建我的第一个游戏 现在我只有一个视图控制器来呈现开始屏幕场景 override func viewDidLoad super viewDidLoad let scene StartScreenScene C

随机推荐

  • Python print 与 Javascript console.log()

    在Python中 print 1 2 n 3 4 会打印 1 2 3 4 在 JavaScript 中 console log 1 2 n 3 4 prints 1 2 n 3 4 与上面的 Python 等效的 Javascript 语句
  • 无法打开相机连接到相机时发生错误:0

    我开始开发一个应用程序 我需要使用手机的相机 当我使用 Camera open 方法时 无论是否带有cameraId 它都会返回错误 连接到相机时发生错误 0 我的 AndroidManifest xml 是
  • 如何在html页面中以格式化的方式显示html代码[重复]

    这个问题在这里已经有答案了 我的网站是一个简单的教育网站 我想以格式化的方式在我的网页中显示 HTML 代码 就像在编辑器中一样 我的意思是 HTML 标签应该以与剩余文本等不同的颜色显示 这是来自另一个网站的代码片段 我想要我的网页的输出
  • 使用 google guava 的 CacheBuilder 的 scala 2.10 类型不匹配

    我正在 scala 2 10 1 中为我的一些实体编写通用缓存 目前 我正在使用 google Guava 的 CacheBuilder 因为 scala 生态系统中没有太多选择 Code trait CachedEntity E lt K
  • SurfaceView隐藏屏幕上的其他组件

    我正在创建一个 FrameLayout 类型的布局 在其中添加两个视图 两个视图分别是GLSurfaceView和SurfaceView的对象 根据有关 SurfaceView 的 Android 开发人员文档 表面是 Z 排序的 因此它位
  • 如何用 pandas DataFrame 中之前和后续值的平均值替换 NaN?

    如果我有一些缺失值 并且我想用之前和之后值的平均值替换所有 NaN 我该怎么做 我知道我可以使用pandas DataFrame fillna with method ffill or method bfill 用前面或后面的值替换 NaN
  • 使用 AVPlayer 音频播放 AVMutableComposition 不同步

    我有一个带有 2 个音频轨道和 1 个视频轨道的 AVMutableComposition 我使用该合成从 mov 文件中串接大约 40 个不同的视频剪辑 将每个剪辑的视频内容放入合成的视频轨道中 将音频放入音轨中 我用于音乐的第二个音轨
  • 使用异步延迟加载属性

    我已经学会了在我的存储库中延迟加载属性 现在我想这样做 但我还需要从网页加载一些内容 使用 Httpclient 这意味着我的属性将是异步的 public async Task
  • 荷兰国旗 - 不适用于更大的阵列

    我的下面的荷兰国旗解决方案似乎不适用于仅包含 3 个元素 0 1 和 2 的给定输入数组 如果我减小数组的大小 它就会起作用 我无法识别错误 我错过了什么吗 class DNF public static void sort int arr
  • WordPress WP_Query 通话帖子和页面

    我设置了一个功能滑块 用于绘制标记为 功能 的帖子 my query new WP Query array showposts gt 3 tag gt feature 可以在帖子和页面中绘制吗 我知道你可以用以下方式绘制页面 post ty
  • OpenCL 产生错误的计算

    我一直尝试使用openCL做一些计算 但结果不正确 我输入了三个 float3 如下所示 300000 0 0 300000 300000 0 300000 300000 300000 进入这个内核 kernel void gravitat
  • 如何在运行的容器内获取AWS Fargate任务实例元数据?

    当任务在 AWS Fargate 内部启动时 它有一个用于 Cloudwatch 日志的任务 ID guid 并且可以用作唯一的 运行 ID 我正在将 NET Core 应用程序启动到 AWS 容器中 并希望找到一种编程方式来提取任务 ID
  • System.Private.ServiceModel 的问题

    我创建了一个 Core 3 1 应用程序 它使用基于 net 标准 2 0 的 Web 服务 在本地开发环境中一切正常 在我将其部署到 UAT IIS 上之前 我收到以下异常 Exception System IO FileNotFound
  • 在 Mac OS X 10.6.8 上用什么来编译和模拟 Verilog 程序?

    作为教学大纲的一部分 我需要模拟 Verilog 程序 但是 我的大学使用 Xilinx ISE 但它不适用于 Mac 因此 请帮助我提供最好的软件以及有关如何安装和使用它们的一些详细步骤 你可以尝试伊卡洛斯 Verilog http iv
  • Android tab 片段不调用 OnCreateView 从 tab2 切换到 tab1

    这是选择 3 选项卡式布局时 Android Studio 自动生成的代码 问题是当它从第一个选项卡开始时 它会调用onCreateView in class PlaceholderFragment 当我切换到第二个选项卡时 它会再次为该选
  • 嵌套条件与复合条件

    这两个例子中哪一个表现更好 示例1 if condition 1 if condition 2 do something 示例2 if condition 1 and condition 2 do something 如果有的话 差异可以忽
  • 如何跳过空格但将其用作解析器组合器中的标记分隔符

    我正在尝试构建一个小型解析器 其中标记 幸运的是 从不包含空格 空白 空格 制表符和换行符 本质上是标记分隔符 除了有括号等的情况 我正在延长RegexParsers班级 如果我打开skipWhitespace当下一个标记与前一个标记的正则
  • GCC/X86,相对跳转问题

    我正在尝试在 x86 程序集中进行相对跳转 但是我无法让它工作 似乎由于某种原因 我的跳跃不断被重写为绝对跳跃或其他东西 我想做的一个简单的示例程序是这样的 global main main jmp 0x4 ret 由于 jmp 指令有 4
  • 为什么使用 WebRequest 发送 post 数据需要这么长时间?

    我目前正在创建一个 C 应用程序来绑定到 php MySQL 在线系统 应用程序需要将发布数据发送到脚本并获取响应 当我发送以下数据时 username test password test 我收到以下回复 Starting request
  • .png 动画在 spritekit 中性能缓慢

    我的项目中有一个 png 动画 包含 700 张图片 尺寸为 150 像素 x 150 像素 它工作正常 但每次动画开始时 整个游戏都会冻结约 0 1 秒 喜欢它的加载 但我在 initWithSize 中实现了 png 数组 像这样 SK