SpriteKit SKTexture 崩溃

2024-06-26

不知道为什么这不起作用。

当它尝试创建船舶节点时,它会因 EXC_BAD_ACCESS 而崩溃。

SKTexture *tex = [SKTexture textureWithImageNamed:@"Spaceship"];
CIFilter *filter = [CIFilter filterWithName:@"CISepiaTone"];
[filter setValue:@0.6 forKey:kCIInputIntensityKey];

SKTexture *texDone;

if (filter) {
    texDone = [tex textureByApplyingCIFilter:filter];
}

if (texDone) {
    SKSpriteNode *ship = [SKSpriteNode spriteNodeWithTexture:texDone];
    [self addChild:ship];
    ship.position = CGPointMake(200, 200);
}

与创建船舶相同的崩溃。

我用过这个SKEffect,但是代码多了很多?对于相同的过滤器。以下作品。

SKSpriteNode *spriteToFilter = [SKSpriteNode spriteNodeWithImageNamed:@"Spaceship"];

CIFilter *filter = [CIFilter filterWithName:@"CISepiaTone"];
[filter setValue:@1.0 forKey:kCIInputIntensityKey];

SKEffectNode *effectNode = [SKEffectNode node];
effectNode.filter = filter;
effectNode.shouldEnableEffects = YES;

[effectNode addChild:spriteToFilter];
[self addChild:effectNode];
effectNode.position = CGPointMake(200, 200);

看起来是一个错误SKTexture正如开发论坛中讨论的那样here https://devforums.apple.com/message/894095。根据 lldb 跟踪,我猜测这是一个内存管理问题,涉及使用过滤器时如何分配图像数据缓冲区。如果你真的想避免使用SKEffectNode,这段代码应该可以通过直接处理过滤器并避免依赖来解决这个问题SKTexture.

UIImage *ship = [UIImage imageNamed:@"Spaceship.png"];
CIImage *shipImage = [[CIImage alloc] initWithImage:ship];
CIFilter *filter = [CIFilter filterWithName:@"CISepiaTone" keysAndValues:kCIInputImageKey, shipImage, @"inputIntensity", [NSNumber numberWithFloat:0.6], nil];
CIContext *context = [CIContext contextWithOptions:nil];
CIImage *out = [filter outputImage];
CGImageRef cg = [context createCGImage:out fromRect:[out extent]];
SKTexture *texDone = [SKTexture textureWithCGImage:cg];

在这里进行了测试和工作,但使用可能更容易SKEffectNode您发布的代码。不确定哪个更有效,您必须尝试使用​​它们。

// adding the texture to a sprite with above filter works
SKSpriteNode *spriteToFilter = [SKSpriteNode spriteNodeWithTexture:texDone];
[self addChild:spriteToFilter];
spriteToFilter.position = CGPointMake(200, 200);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SpriteKit SKTexture 崩溃 的相关文章

  • 指定随机粒子起始颜色而不进行动画更改?

    有没有办法让粒子根据当前的 颜色渐变 产生随机的每个粒子颜色 粒子在其生命周期内不会改变颜色 它们只是在出生时从 颜色渐变 的某个地方被分配了一种颜色 并保持该颜色直到它们死亡 其结果将是出生时的粒子与从红色到蓝色的混合颜色的混合 在我的测
  • SpriteKit 中的攻击按钮

    我对 Xcode 有点陌生 一直在为我的班级制作 2d 游戏 我已经有一段时间遇到按钮问题了 我刚刚找到了为什么我的跳跃按钮不起作用的解决方案 但我还有一个攻击按钮 我设置了代码 使按钮显示在屏幕上并在按下时更改其图像 但是 我不知道要放入
  • 为什么 CGPath 和 UIBezierPath 在 SpriteKit 中对“顺时针”的定义不同?

    在 SpriteKit 中 clockwise方向相反UIBezierPath但不是为了CGPath 例如 如果我有 do let path CGPathCreateMutable CGPathAddArc path nil 0 0 10
  • 如何更改 CIFilter CIQRCodeGenerator 过滤器的背景色和前景色

    我正在尝试为 OS X 制作一个 QR 码生成器 但我还没有成功制作一个比黑白 QR 码更丰富多彩的 QR 码我正在使用 CIImage 过滤器的 CIQRCodeGenerator 我将如何制作这个工作我有一个示例代码 已在我的应用程序中
  • 如何将任意颜色的色度键滤镜应用到实时摄像头源ios?

    基本上我想将色度键滤镜应用到 ios 实时摄像头源 但我希望用户选择将被另一种颜色替换的颜色 我找到了一些使用绿屏的示例 但我不知道如何动态替换颜色而不仅仅是绿色 知道如何以最佳性能实现这一目标吗 您之前曾询问过我的情况GPUImage h
  • 在 Swift 中将动态 Int 变量从一个类传递到另一个类

    我是 swift 2 的新手 我陷入了将变量从一个类传递到另一个类的过程中 我有一个类 GameScene 我有一个公共变量score并且在更新功能中不断更新 我想发送score两个节点相互碰撞时的值 一旦它发生碰撞 我就会使用 mainv
  • 为什么这个 SKPhysicsJointPin 不能将这 2 个精灵保持在一起?

    我显然不太了解 SKPhysicsJoint 但是除了 Apple 文档之外 网上的信息还很少 下面的代码有什么问题 我认为应该保持头部和颈部永久连接 我的意图是它们就像两张带有大头针的纸 这样它们可以旋转一点 但不仅仅是完全分开 当我运行
  • 使用 Swift 在 Sprite Kit 中构建棋盘游戏? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 在使用 Swift 的 Sprite Kit 中 我试图构建一个国际象棋棋盘 实际上是一个类似国际象棋的棋盘 平铺网格 那么一般来说
  • 如何在 Swift 中使用 deltaTime 正确计算 1 秒

    我正在尝试计算经过的秒数deltaTime但我不知道该怎么做 因为我的deltaTime不断打印 0 0166 或 0 0167 这是我的代码 override func update currentTime CFTimeInterval
  • SpriteKit内存管理预加载缓存和fps问题

    我的问题非常简单 根据苹果文档 您可以在呈现场景之前将纹理预加载到 RAM 中 如下所示 SKTextureAtlas atlas SKTextureAtlas atlasNamed effect circle explode SKText
  • 如何使用 Swift 将高分游戏保存在排行榜上?

    我使用 SpriteKit 和 Xcode 7 beta 制作了一个游戏 我尝试放置 GameCenter 和 Leaderboard 但问题是排行榜中的分数不会改变 它始终保持 0 游戏的高分不会保存在 Leaderboard 中 我不知
  • 添加事件侦听器到回合制 ios 游戏时出现警告

    这是 gamekithelper m 中的代码 void authenticateLocalPlayer 1 GKLocalPlayer localPlayer GKLocalPlayer localPlayer add a weak lo
  • 将图像作为球分配给 SKShapeNode - Spritekit 游戏

    我正在尝试在 Swift 2 Sprite kit 游戏中向我的球添加图像 我有一个make ball 函数 但在游戏场景中没有错误 当调用该方法时 我不断收到此错误 无法分配 SKShapeNode 来输入 Ball 我不知道如何修复 并
  • Swift:如何让游戏中的角色只有落地后才能跳跃?

    我正在开发一款游戏 我的角色可以从一个陆地跳到另一个陆地 我已经把所有事情都做好了 除了我剩下的问题是 如果你继续点击屏幕 他可以永远跳跃 我希望他必须先落地才能再次跳跃 import SpriteKit import GameplayKi
  • 如何用SKAction循环播放音乐?

    我想用 SKAction 循环背景音乐 但当我切换到另一个场景时 音乐在一行后停止 有没有办法开始循环并在不同的场景中继续播放 现在代码放置在 MyScene 的 init 方法中 这是正确的位置吗 也许 didFinishLaunchin
  • 在 SKScene 上运行 SKTransition 是否会破坏原始 SKScene?

    在 SKScene 上运行 SKTransition 是否会破坏原始 SKScene 例如 SKTransition reveal SKTransition revealWithDirection SKTransitionDirection
  • Swift SpriteKit edgeLoopF​​romRect 问题

    下面的代码可以识别底部和顶部边缘场景和球按预期弹开 但是 那左边缘和右边缘现场的情况一直被破坏 如果施加足够的力 球会离开屏幕 然后最终返回 就好像场景的边缘超出了 iPhone 模拟器窗口的边缘 import SpriteKit clas
  • SpriteKit SKView 显示字段内存使用情况

    我很好奇什么时候showsFields开启后 内存占用增长极快 它可以在 30 秒内增长到 500MB 如果我的Mac只有8GB RAM 在出现内存警告之前我可能只有不到8分钟的时间来调试 在真实设备上调试时会最糟糕 下面的屏幕截图是在真实
  • SpriteKit SKTexture 崩溃

    不知道为什么这不起作用 当它尝试创建船舶节点时 它会因 EXC BAD ACCESS 而崩溃 SKTexture tex SKTexture textureWithImageNamed Spaceship CIFilter filter C
  • 添加、删除和缓存 SKNode

    背景资料 我正在创建一个具有多个 楼层 的 SpriteKit 2D 平台式游戏 当用户进入 门户 时 他会被传送到另一层 上层或下层 如果用户死在与最近的重生点不同的楼层 他会被传送回重生点所在的楼层 Problem 升级到iOS8后 这

随机推荐

  • Chrome扩展程序自定义光标

    我构建了一个 Google Chrome 扩展程序 在网站中放置一些 IMG 标签 hover 上的此 img 标记必须显示自定义光标 该扩展使用 jQuery 作为其注入的核心脚本 我尝试了以下方法 1 var cursor url ch
  • 如何从加载程序中排除文件

    我有 webpack 加载器的下一个配置 module loaders test js include rootDir src loader babel presets es2015 test css loader style css au
  • 在 Rails 模型中手动设置列名称

    我正在围绕几个现有数据库构建一个 Rails 应用程序 现有数据库中使用的列名称根本不符合 Rails 关联约定 有没有一种方法可以在模型中设置列名别名 类似于您可以的方式 class User lt Activerecord Base s
  • scrollViewDidScroll:在 UITableViewRowAnimation 上?

    当一个人使用一个UITableViewRowAnimation删除一行或添加一行时 有时如果该行位于表视图的最末端 则表会滚动 然而 即使它滚动它似乎并没有调用scrollViewDidScroll 关于代表 例如 我的委托中有以下代码 v
  • 高效找到圆和网格的交点

    找到由圆心和半径定义的圆与任意网格的交点的好方法是什么 An illustration of the points I am trying to find 到目前为止我想到的可能的解决方案 找到位于中心 半径之间的所有线 对于每条线计算交点
  • MVC 2视图显示错误的模型信息

    我在一个项目中使用 MVC 2 但我遇到了视图问题 在控制器中我有代码 return View calendarDay 如果我调试这一行并检查 calendarDay 它会告诉我 calendarDay Id 属性等于 2 在视图中我有一些
  • Powershell:别名和函数有什么区别?

    Im setting up my powershell profile to create aliases of commonly used commands On Microsoft s documentation https learn
  • JavaScript 在对象中创建数组并将数据推送到数组

    我是编程新手 我正在尝试 React 并具有函数 addComment 当用户向新闻添加评论时执行该函数 此时我需要创建一个属性comments 数组 并分配或推送到该数组输入评论值价值 但现在我只重写了数组的 0 个元素 无法添加新元素
  • 使用 geom_bar 和 stat="identity" 绘制平均值的 hline

    我有一个条形图 其中确切的条形高度位于数据框中 df lt data frame x LETTERS 1 6 y c 1 6 1 6 1 g rep x c a b each 6 ggplot df aes x x y y fill g g
  • Azure 中的 Web.Config 连接字符串和 ServiceConfiguration 连接字符串之间有什么关系?

    我对 Windows Azure 比较陌生 需要更好地了解 Azure 平台如何处理连接字符串配置设置 假设我有一个 ASP Net Web 项目 并且它有一个 Web Config 连接字符串设置 如下所示
  • 演示 TDD 和 SOLID 原则的开源项目 [已关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我之前问过类似的问题 并得到了一些很好的答案 但我认为它太笼统了 优秀软件设计和实现的示例 https
  • 如何在 Android 中对视图进行动画处理并让它保持在新的位置/大小?

    目前 我的 Android 应用程序中有一个视图 并且该视图正在播放帧动画 我想要动画视图以将其大小增加到 150 当我对其应用缩放动画并且缩放动画完成时 我希望查看器在活动生命周期的其余部分中保持新的尺寸 不幸的是 现在当放大动画完成时
  • 具有自动返回类型推导的 Friend 函数模板无法访问私有成员

    抱歉这个问题的标题太复杂了 我试图描述我为这个问题构建的最小 SSCCE 我有以下代码 include
  • 捆绑安装无法安装 libxml-ruby

    我是 Ruby 世界的新手 我需要克隆一个现有项目 说明是 source env development bundle install 但它失败了 Using libv8 3 16 14 15 Fetching libxml ruby 2
  • 使用索引作为循环变量连接多个数据帧

    我通过 for 循环创建多个数据帧并将它们连接起来 效果很好 但我需要包含循环变量作为索引 我找不到将循环变量设置为索引的方法 maindf pd DataFrame for i in 20170724 20170725 20170726
  • 在 Sequelize 中添加带有起始值的自动递增整数

    经过一些研究 我似乎无法找到执行以下操作的好方法 我不想向现有表添加新列 该列应该是一个自动递增整数 从值 1000 开始 我的迁移文件现在简单明了 use strict module exports up queryInterface S
  • 从 ElementFinder 数组创建 ElementArrayFinder

    这是一个后续问题当条件评估为 true 时获取元素 扩展 ElementArrayFinder https stackoverflow com questions 32572299 take elements while a conditi
  • ExecuteNonQueryAsync 并在 SQL 事务中提交

    我正在寻求对我创建的一段代码的帮助 我正在尝试在事务中从 C 进行异步 SQL 调用 例如我可能正在更新或删除表中的行 这是我到目前为止所拥有的 但我似乎无法找到有关在事务中执行此操作的太多信息 根据我在这里所拥有的以及到目前为止我所理解的
  • Go中通过反射给struct成员赋值

    我有一个结构 v 其中包含成员 A B C 字符串 使用反射 我可以获得字段的名称及其值 typ v Type for i 0 i lt v NumField i gets us a StructField fi typ Field i f
  • SpriteKit SKTexture 崩溃

    不知道为什么这不起作用 当它尝试创建船舶节点时 它会因 EXC BAD ACCESS 而崩溃 SKTexture tex SKTexture textureWithImageNamed Spaceship CIFilter filter C