SKEase动作,如何使用Float改变Action Setter Block?

2024-03-09

在下面的用例中,我尝试为lineWidth of an SKShapeNode.

SKEase 是精彩的一部分SpriteKit缓动 https://github.com/craiggrummitt/SpriteKitEasingSwift来自 Craig Grummitt 的 github 存储库。

它的功能之一是浮动变化缓动动作,它似乎会随着时间的推移改变浮动的值。

但是我不知道如何使用它。输入时 Xcode 会给出以下建议:

 let lineWeight = SKEase.createFloatTween(<start: CGFloat, end: CGFloat, time: TimeInterval, easingFunction: AHEasingFunction, setterBlock: ((SKNode, CGFloat) -> Void))

借助该库中的其他 SKEase 操作,Xcode 对于轻松类型非常有帮助,并有助于确定要输入的内容。

有了这个,我不知道 AHEasingFunctions 有哪些可用选项...我可能可以找到。

但我完全不知道如何使用最后一部分,setterBlock 似乎期望一个函数采用一对与活动无关的参数。 XCode 在这里不接受 SKShapeNodes 或 SKSpriteNodes,只接受 SKNode,但我无法超越这一点。


SKEase 的文档是这样描述的:


如果您输入let fn = SKEase.getEaseFunction(然后用点表示曲线类型和缓动类型的枚举类型,您将完成。

使用 SKNode 到 SKShapeNode,您必须进行转换。

这是一些代码:

    let fn = SKEase.getEaseFunction(.curveTypeQuadratic, easeType: .easeTypeInOut)
    let easeFat = SKEase.createFloatTween(2.5, end: 30.0, time: easeTime/2, easingFunction: fn) { (node: SKNode, param: CGFloat) in
        let spinny = node as! SKShapeNode
        spinny.lineWidth = param
    }
    let easeThin = SKEase.createFloatTween(30.0, end: 2.5, time: easeTime/2, easingFunction: fn) { (node: SKNode, param: CGFloat) in
        let spinny = node as! SKShapeNode
        spinny.lineWidth = param
    }

    if let spinnyNode = self.spinnyNode {
        spinnyNode.lineWidth = 2.5

        let rotate = SKAction.rotate(byAngle: CGFloat(M_PI) * CGFloat(2.0), duration: easeTime)
        let easeFatThin = SKAction.sequence([easeFat, easeThin])
        let rotateAndEase = SKAction.group([rotate, easeFatThin])

        spinnyNode.run(SKAction.repeatForever(rotateAndEase))
        spinnyNode.run(SKAction.sequence([SKAction.wait(forDuration: easeTime),
                                          SKAction.fadeOut(withDuration: easeTime),
                                          SKAction.removeFromParent()]))
    }

以及我的一个完整项目GitHub https://github.com/sarah-j-smith/EasingPlay.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SKEase动作,如何使用Float改变Action Setter Block? 的相关文章

  • 如何指定输出可执行文件的名称?

    默认情况下 SPM 会构建与包含其模块文件夹同名 大写 的可执行目标 main swift 如何让它使用不同的文件名构建二进制文件 我找不到任何说明SPM手册 https github com apple swift package man
  • 如何取消 Alamofire.upload

    我正在通过以下方式将图像上传到服务器上Alamofire upload作为多部分数据 不像Alamofire request它没有回来Request对象 我通常用它来取消请求 但是能够取消上传这样的消耗性请求是非常合理的 阿拉莫菲尔有哪些选
  • iOS 图表错误:Thread1:EXC_BAD_ACCESS(代码=2,地址=0x2a0c220)

    因此 我正在遵循 AppCoda 上的 iOS Charts 教程 我完美地遵循了它 然后当我遇到问题时 我还复制了代码以使其完全匹配 问题是 当我尝试创建饼图然后运行它时 我收到错误 线程1 EXC BAD ACCESS 代码 2 地址
  • 适用于 iOS 的 Firebase 云消息通知未显示打开和分析

    我正在使用 FCM 向 iOS 应用程序发送通知 设备上可以很好地接收通知 但我无法在通知控制台 GUI 中获取 打开 或 转化 率 对于发送的近 200 0000 条通知 它始终显示 0 个打开 和 0 个转化 我仔细检查了所有的实现 但
  • 使用 Swift 的核心数据瞬态值

    有谁知道 或者有一个例子 如何使用 Swift 处理核心数据瞬态值 我知道在属性之前使用 NSManaged 但无法弄清楚如何编写逻辑以使用 Swift 构建瞬态值 复选标记短暂的数据模型中特定属性的字段 例如sectionTitle 为该
  • AVVideoComposition 应用过滤器处理程序不调用

    I want to add an overlay image into a video I use AVVideoComposition and CIFilter to do this but AVAsynchronousCIImageFi
  • 检查文本字段是否为空会导致 Swift 2 错误

    我正在尝试检查文本框是否没有值 当我这样做时 if userEmail isEmpty userPassword isEmpty userPasswordRepeat isEmpty I get the following error I
  • 在 Swift 中上传带有其他参数的多张图片

    现在 我通过下面给出的代码仅将一张图像上传到服务器端脚本上的服务器 现在我有一个数组UIImage 我想知道如何使用UIImageJPEGRepresentation myImageView image 0 1 将所有图像发布到UIImag
  • 为 Swift 中的Optional提供默认值?

    如果您只想在 nil 的情况下提供默认值 那么在 Swift 中处理可选值的习惯用法似乎过于冗长 if let value optionalValue do something with value else do the same thi
  • userDidAcceptCloudKitShareWith 未被调用

    func application application UIApplication userDidAcceptCloudKitShareWith cloudKitShareMetadata CKShare Metadata 单击共享 cl
  • 检查 NSIndexPath 的行和部分的开关

    我想设置一个 switch 语句来检查值 ifNSIndexPath NSIndexPath是一个类 它由 除其他外 部分和行组成 indexPath row indexPath section 这就是我如何制定 if 语句来同时检查行和部
  • Swift - 集成 GameCenter 以使用排行榜

    我正在用 Swift 制作一个游戏 我希望能够使用 GameCenter 发布用户的分数 以便可以看到所有用户的分数 然而 我花了一天的时间试图弄清楚如何做到这一点 但我没有找到任何有用的说明 我对 iOS 编程和 Swift 还很陌生 关
  • 在 Swift 中初始化空字典数组

    我正在尝试在 Swift 中初始化空数组 对于字符串数组来说 这非常简单 var myStringArray String myStringArray a myStringArray b gt a b 对于整数 var myIntArray
  • IOS - 委托与通知

    想听听您对以下架构的看法 在我的应用程序中 我有一个处理异步登录的静态类 LoginManager 登录阶段完成后 应用程序应该做出响应并转换到另一个状态 我有2条实施建议 使用委托 import Foundation protocol L
  • UnsafePointer 在 swift 3 中不再工作

    当我从 swift 2 转换为 swift 3 后 下面提到的行会弹出一个错误 let value UnsafePointer
  • 在 Swift 中将单个整数值视为一个范围

    我需要验证字符串的长度 字符计数允许的值为 6 9 个字符 12个字符 15 个字符 所有具有不同字符数的字符串均无效 因此 我想创建一个 Swift 函数 它接受多个范围并计算字符串 extension String func evalu
  • 检查 Firebase 中是否存在用户名[重复]

    这个问题在这里已经有答案了 我有一个这样的数据库 users UID1 用户名 用户 1 UID2 Username of user 2 UID3 Username of user 3 UID4 Username of user 4 等等
  • iOS 11.x 系统颜色

    我读过很多关于如何自定义视图颜色的文章 但没有任何关于检索标准控件 如 iOS 11 x 或以前版本中的导航栏 状态栏和选项卡栏 的系统颜色的文章 UIColor 类有 3 种系统颜色 但它们几乎没有用 例如 调用 UINavigation
  • 使用 Swift 在 iOS 和 Android 之间共享核心代码

    我想要的是 使用 Swift 在 Android 和 iOS 之间共享非 UI 代码 问题 Android 具有 NDK 支持 允许您使用 Java 本机接口 JNI 运行 C 和 C 代码 不是 Objective C 我是一名Java程
  • 当现有的转换或演示正在进行时;导航堆栈不会更新

    我遇到过这个警告 PushViewController animated 在现有转换或演示文稿运行时调用 发生 导航堆栈不会更新 当试图打电话时navigationController popViewControllerAnimated f

随机推荐

  • 命名空间 .AspNetCore.Hosting 与 .Extensions.Hosting

    在我的 ASP NET Core 2 0 项目中 我一直在使用 Microsoft Extensions Hosting 命名空间中的 IHostingEnvironment 和 IApplicationLifetime 在 ASP NET
  • 如何在 C# 中将字符串数据作为 ZIP 存档上传到 FTP 服务器

    这是我的代码 我想导出 上传这个 dat文件以 zip 格式传输到 FTP 服务器 我尝试了很多但没有找到任何解决方案 任何人都可以帮助我解决这个问题 public string ExportVoid FileSetups fileSetu
  • WebSocket 慢 - Java 和 JavaScript

    我正在处理我的世界插件的编码 但现在我遇到了以下问题 我的 websocket 服务器响应非常非常慢 这是我的 WebSocketClass 用于插件 套接字服务器类 package me mickerd pcoc import java
  • 约束包含仅适用于概念吗?

    考虑这个例子 template
  • 以与输入 R 相同的格式在 R 中输出向量

    也许我在想象这一点 但我认为有一个内置的 R 函数 可以让您以用于输入该对象的格式打印 R 向量 以及可能的其他对象 如矩阵和数据帧 返回为一个字符串 例如 gt x lt c 1 2 3 gt x 1 1 2 3 gt magical f
  • 从表中随机获取3条记录

    我已经阅读了类似查询的多个答案 但似乎没有一个能切中要害 假设我有一个包含 10 行的表 如何使用实体框架从该表中检索 3 个随机行 不只是 1 个随机行 而是 3 个随机行 每行都彼此不同 提前致谢 var threeRandomFoos
  • 如何在Android应用程序中自动填充编辑文本?

    我正在开发一款安卓应用程序 其中我有一些产品和购买该产品的表格 在订单表格中 我有一个 编辑文本作为产品 指产品名称 在我的应用程序中 用户必须输入产品名称 但我想知道有什么方法可以 EditText 字段会自动填充特定的产品 就像 Fli
  • c# 使用linq对数据表中的多列进行分组

    我的数据表中有三列 字符串 日期时间和小数 我想按字符串和小数列进行分组 对于分组的行 我想对小数值求和 我知道如何进行求和部分 但是如何对数据表中的两个不同列进行分组 这是我到目前为止无法正常工作的代码 var newSort from
  • Java - 在两个不同的数组中查找唯一元素

    我需要找到两个不同数组中的唯一元素 public static void main String args TODO Auto generated method stub int arr1 new int 1 2 3 4 5 6 int a
  • 如何清除mysql中的查询缓存?

    我在 root 提示符下尝试过此操作 但没有帮助 mysql gt RESET QUERY CACHE 这显示了 Query OK 0 rows affected 0 00 sec 但历史依然存在 如何清除或删除我输入的查询的历史记录 查询
  • 面向服务的架构建议

    出于个人和大学研究的原因 我正在考虑使用面向服务的架构构建一个简单的 CRM 其意义只是解释架构本身 并非商业用途 我正在考虑实施一个 CRM 提供简单的分析服务和客户服务 用户存储 个人评论和其他一些东西 我正在设计的架构定义 WebGU
  • 在尝试以下发现的实现后,没有可用于“事务可选”的持久性提供程序:

    我正在尝试使用 JPA 2 0 创建一个 Google App Engine GAE 我已遵循我需要的所有操作 将正确的 jar 放入类路径中并确保我的实体得到增强 但我在创建 EntityManager 时遇到问题 我的 persiste
  • 在 Python Pandas DataFrame 或 Jupyter Notebooks 中包装列名称

    我的数据框中的某些列的标题很长 并且我希望能够自动换行文本 我知道这个功能内置在 pandas 中 就像我一样 pd DataFrame np random randn 2 10 columns Very Long Column Title
  • 相当于 Mac 上的 MFMailComposer

    iOS 有不错的MFMailComposer让用户撰写电子邮件的类 在 Mac Mail 中打开新窗口并使用预先格式化的电子邮件的最佳方式是什么 就像通过 Mountain Lion 和 Reeder 应用程序中的 Safari 共享按钮完
  • 将 for-compression 与 scala.util.Try 一起使用时快速失败

    我很喜欢scala util Try在 Scala 2 10 中 以及它如何与 for compression 配合使用 使得处理可能容易出错的多个步骤 例如 我们可以使用以下代码来确保当且仅当一切都在控制之下并且我们正确获取值时才打印出这
  • 如何在 Magento 的非 EAV 模型中使用 setPage() 进行分页/限制?

    我需要得到 collection gt setPage 0 10 在我的非 EAV 模型上工作 但它不起作用 我已经尝试过了 matches gt getSelect gt setPage 0 10 但这没有帮助 The setPage 方
  • 将字符串拆分为具有特定模式和条件的部分

    我有类似下面的大约 5k 字符串的数组作为某些应用程序的输出 出于安全原因 我可能不会提供确切的数据 但示例格式与实际数据非常相似 kasdfhkasdhfaskdfj42345sdsadkfdkfhasdf5345534askfhsad
  • Pascal 中的“#”符号是什么?

    例如 x 123 我尝试在谷歌上搜索 但我根本不知道这意味着什么 IIRC 它表示数字的字符值 例如 32 gt 空格
  • 撤消系列差异

    我有一个包含每月数据的 pandas 系列 df sales 我需要减去 12 个月前的数据来拟合时间序列 所以我运行了以下命令 sales new df sales diff periods 12 然后我拟合了 ARMA 模型 并预测了未
  • SKEase动作,如何使用Float改变Action Setter Block?

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