使用自定义 SKAction 的 EaseOut 操作

2024-01-03

我有以下自定义 SKAction 工作,但作为 EaseIn 而不是 EaseOut。我想让它缓出!我使用网络上找到的各种缓动方程来纠正它,却惨遭失败。

    let duration = 2.0
    let initialX = cameraNode.position.x
    let customEaseOut = SKAction.customActionWithDuration(duration, actionBlock: {node, elapsedTime in

        let t = Double(elapsedTime)/duration
        let b = Double(initialX)
        let c = Double(targetPoint.x)
        let p = t*t*t*t*t

        let l = b*(1-p) + c*p

        node.position.x = CGFloat(l)
    })

    cameraNode.runAction(customEaseOut)

任何帮助将不胜感激。

Thanks


你不需要计算它。

SKAction只是有一个名为timingMode:

// fall is an SKAction
fall.timingMode = .easeInEaseOut

您可以选择:

  • 线性(默认)
  • easeIn
  • easeOut
  • 缓进缓出

检查详细信息API docs https://developer.apple.com/reference/spritekit/skaction/1417807-timingmode并且here https://developer.apple.com/reference/spritekit/skactiontimingmode.

如果您需要更改 Apple 预设,您可以使用:定时功能 https://developer.apple.com/reference/spritekit/skactiontimingfunction

fall.timingFunction = { time -> Float in
    return time
}

根据源代码构建自定义函数:

/**
 A custom timing function for SKActions. Input time will be linear 0.0-1.0
 over the duration of the action. Return values must be 0.0-1.0 and increasing
 and the function must return 1.0 when the input time reaches 1.0.
 */
public typealias SKActionTimingFunction = (Float) -> Float

因此,有了这些信息,你可以写:

func CubicEaseOut(_ t:Float)->Float
{
   let f:Float = (t - 1);
   return f * f * f + 1;
}
fall.timingFunction = CubicEaseOut
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用自定义 SKAction 的 EaseOut 操作 的相关文章

  • 如何反转 CGPath 的点顺序

    我想画一个圆圈 并用它打出字母 为此 我需要顺时针抚摸圆圈 逆时针抚摸字母 这一切都很好 但是当我使用 Core Text 获取字母路径时 我不知道如何从本质上反转该路径 不是镜像或旋转或任何东西 这很简单 我希望点笔画顺序是逆时针的 这实
  • IPV6 快速可达性

    我是 swift 和 xcode 的新手 并且我的应用程序因 IPV6 而被拒绝 性能 2 1 当我们执行以下操作时 您的应用程序会在运行 iOS 9 3 5 并连接到 IPv6 网络的 iPad 和 iPhone 上崩溃 具体来说 当我们
  • 在 swift3 中结合平移、alpha 和缩放动画

    我是 iOS Swift 开发的新手 我尝试将三个参数组合在一个动画中 但没有成功 我认为解决方案就在这里 Apple Dev Core 动画编程指南 https developer apple com library content do
  • 在 Xcode 5.1 中构建时,“您必须提供 5.5 英寸 Retina 显示屏的屏幕截图,因为您的应用程序二进制文件支持 5.5 英寸 Retina 显示屏”

    我更新了一个旧应用程序并修复了一些小错误 该应用程序是使用 Xcode 5 1 编译的 无法使用资产目录或添加 iPhone 6 和 6 Plus 图像 但当我尝试提交它进行审查时 我仍然收到此错误 您必须提供 4 7 英寸 Retina
  • 在 iOS5 中使用 UISegmentedControl 切换 ViewController

    我正在尝试一些非常简单的事情 但不知何故我无法让它发挥作用 我尝试做的就是使用 UISegmentedControl 在 2 个视图控制器之间切换 就像您可以在 App Store 应用程序的 突出显示 选项卡中看到的那样 我正在使用 iO
  • 我可以更改键盘方向吗?

    例如我用这段代码关闭自动旋转 BOOL shouldAutorotateToInterfaceOrientation UIInterfaceOrientation interfaceOrientation return NO BOOL sh
  • 使用 Simulator 时 Xcode 10 中的屏幕截图尺寸错误

    我正在尝试使用 Xcode 10 模拟器为 iTunes 制作屏幕截图 但图像大小错误 我读过Debug gt Optimize Rendering for Window Scale会有帮助 但在 Xcode 中没有这样的选项 有人有这个问
  • 如何提高包含大量小图像的 UCollectionView 的性能?

    在我的 iOS 应用程序中我有UICollectionView显示大约 1200 个小 35x35 点 图像 图像存储在应用程序包中 我正确地重用了UICollectionViewCell但仍然存在性能问题 具体取决于我处理图像加载的方式
  • iOS:Swift - 如何在触摸时向地图添加精确定位并获取该位置的详细地址?

    我想在 iOS 地图的触摸上添加注释并获取各个位置的详细地址 地标 我如何在 Swift 中实现这一目标 提前致谢 要对地图上的触摸做出反应 您需要为地图视图设置点击识别器 in viewDidLoad let gestureRecogni
  • Xcode 无法找到 strip-frameworks.sh 目录

    我最近将 Xcode 更新到版本 7 1 其中包括 Swift 2 1 我安装了 Swift 2 1 没有遇到任何问题 在尝试运行我的项目后 我意识到我需要获取最新版本的 Realm 因为之前的版本不支持 Swift 2 1 我删除了旧框架
  • 在 iOS 上,UIView 的 Frame 属性未在动画内部分配

    在我的 iOS 应用程序中 我尝试执行以下简单的动画 void dismissToolbar NSLog bx f by f bw f bh f toolbar frame origin x toolbar frame origin y t
  • 将子视图控制器的视图添加到父视图控制器的子视图

    我想添加一个表视图控制器作为容器视图控制器的子视图控制器 如下所示 根据苹果公司的查看控制器编程指南 http developer apple com library ios featuredarticles ViewControllerP
  • Swift 闭包作为 AnyObject

    我尝试使用这个方法 class addMethod 在 Obj c 中使用如下 class addMethod self class selector eventHandler imp implementationWithBlock han
  • CBPeripheral 名称有时为 null

    我正在开发一个应用程序来与蓝牙 LE 外围设备进行通信 我目前正在测试的外围设备是其中之一these http www ti com tool cc2540dk mini 有趣的是 有时当我发现它时 我会得到它的正确名称 SimpleBLE
  • 如何自动缩放mapView以显示叠加层

    我可以在 mapView 上绘制多边形 但是我需要找到多边形并手动缩放它 有没有办法自动执行此过程 例如调整中心多边形 我浏览过互联网并阅读了一些相关文章 其中大多数都是基于折线和点的 任何形式的帮助将不胜感激 因为我正在寻找解决方案一段时
  • iOS - NSNotificationCenter 多个UIKeyboard通知

    我有两个视图控制器 我们称它们为 A 和 B 1 在 A 中 我显示一个包含文本字段的 popOver 2 B中有一个UITextView用于简单的文本编辑 我必须管理 A 和 B 中的键盘才能滚动键盘隐藏的内容 我知道如何重新定位内容 我
  • iOS Storyboards 我应该使用它们吗? [复制]

    这个问题在这里已经有答案了 我是 iOS 开发新手 尚未创建应用程序 但我向我的朋友寻求建议 他在市场上拥有非常高评价的应用程序 他说不要使用故事板 尽管我很想听取他的建议 但它们似乎确实很有帮助 这是否会在将来给我的应用程序带来问题 我有
  • 在 Flutter 中显示 iOS 的 PDF 内联文件

    我正在 flutter 中专门为 iOS 开发一个应用程序 现阶段 我需要向其中添加 PDF 文件 问题是 flutter 没有原生的方式来显示 PDF 文件 据我研究 由此tread https github com flutter fl
  • 在 iOS 11 中创建 Gif 图像颜色贴图

    最近 我在创建 Gif 时遇到了一个问题 如果它太大 颜色就会丢失 然而 感谢 SO 的帮助 有人能够帮助我找到解决方法并创建我自己的颜色图 上一个问题在这里 保存动画 Gif 时 iOS 颜色不正确 https stackoverflow
  • 无法将 admob 与 firebase iOS/Android 项目链接

    我有两个帐户 A 和 B A 是在 Firebase 上托管 iOS Android unity 手机游戏的主帐户 B 用于将 admob 集成到 iOS Android 手机游戏中 我在尝试将 admob 分析链接到 Firebase 项

随机推荐

  • HTML5 视频色差 Chrome 和 Internet Explorer

    我正在使用 HTML5 视频标签通过以下代码在我的网站上播放短视频
  • 找不到值类型为 Boolean 的属性“app:vm”的 GETTER

    我正在尝试在我的自定义控件中使用本机 2 路 Android 数据绑定 所以我在 xml 中有类似的东西
  • Chrome刷新右键重新加载选项不可用

    我正在尝试做一个hard reload and empty cache在 Chrome 中 因为之前加载的网站不断出现在localhost我正在使用的端口 问题是右键单击选项似乎已停止工作 即 当我右键单击刷新按钮时没有任何反应 只能单击左
  • 为什么模板可以直接使用$this关键字?

    我是 PHP 的新手 今天我在 Magento 中看到一些代码如下top phtml div class nav container ul li class home a href a li ul div
  • 如何使用 has_one 关联连接关联表

    在我的 Rails 应用程序中 我只要求用户在注册时输入电子邮件和姓名 然后让他们可以选择为其个人资料提供更完整的联系方式 因此 我有一个与 Contact rb 关联的 User rb 模型 即 User rb has one conta
  • 查找最大的空闲内存块

    当内存碎片化时 有时会出现内存不足的问题 是否有可能找到最大的空闲内存块 我使用 Delphi 2007 和 FastMM 在 Windows XP 上开发并在 Windows 2003 上运行应用程序 Regards EDIT 我可以添加
  • 用户表的不同名称字段?

    我有一个包含 2 个字段的表单 用户名密码 和一个包含这两个相同字段 用户名 密码 的 mysql 表 并且我的身份验证系统工作正常 但是 如果我的表字段具有不同的名称 我就无法使其工作 例如 我的用户 我的密码 如果你只是改变userna
  • 数字类型的类模板

    如何编写只接受数字类型的类模板 int double float等 作为模板 您可以使用std is arithmetic http en cppreference com w cpp types is arithmetic类型特征 如果您
  • 在 C# 中从 IronPython 调用时引用 Python“导入”程序集

    对于 IronPython 我完全是个菜鸟 我需要从 ASP NET 网站调用 py 脚本 并具有以下代码 var ipy IronPython Hosting Python CreateRuntime dynamic test ipy U
  • Julia 是否对递归多态类型执行代码单态化?

    我注意到 在执行代码单态化的语言 例如 C Rust 等 中实现多态递归类型即使不是不可能 也是非常困难的 这通常是因为编译器需要为该类型的每个可能的实例化生成代码 这通常会导致无限递归 支持此功能的语言通常使用类型擦除 编译器不会尝试实例
  • 以编程方式即时断电?

    在网络环境中的 Windows XP Pro 下 按 Ctrl Alt Del 会出现 Windows 安全提示 如果按住 Ctrl 并单击关机 则会触发紧急关机 这似乎关闭系统的速度如此之快 甚至没有进程完成 即几乎就像您刚刚拔掉电源 长
  • iOS 上的 Jquery mobile 1.4 页面底部的固定元素隐藏焦点上的输入文本

    你好 我正在使用 Jquery mobile 1 4 构建 cordova 3 应用程序 我的 Mac 上的 Safari 和 Chrome 对以下内容没有任何问题 但是当我在真实设备或 iOS 模拟器上部署并想要在字段中输入时 我会发现页
  • cmake 的全局默认设置

    有没有类似的东西MAKEFLAGS环境变量为cmake 设置一些全局默认值 例如CMAKE INSTALL PREFIX 不 CMake 没有类似的环境变量 您可以通过 CMake 中的环境变量设置的所有内容均已记录here https c
  • 检查数组是否包含另一个数组中的元素

    我有两个数组A 0 1 2 and B 2 1 0 如何检查A中的数字是否存在于B中 NOTE includes不是ES6 而是ES2016 Mozilla 文档 https developer mozilla org en US docs
  • logback登录时如何处理磁盘已满错误?

    我正在使用 slf4j logback 来登录我们的应用程序 早些时候我们使用的是jcl log4j 最近搬到了这里 由于我们的应用程序中的日志记录量很大 生产环境中可能会出现磁盘已满的情况 在这种情况下 我们需要停止日志记录 应用程序应该
  • virtualenv 与该系统或可执行文件不兼容

    我对 Linux Ubuntu 和安装 Python 软件包相当陌生 我在使用 mkvirtualenv 时遇到问题并且无法解决 mkvirtualenv mysite70 New python executable in mysite70
  • Word Addin/OfficeJS - 检测光标是否位于图表元素上

    我希望能够检查文档光标是否位于 MS Word API 内的图表元素内 现在我有一个插入文本的应用程序 但是当我尝试将所述文本插入图表标题时 它会删除图表并将其替换为我插入的内容控件 我不想删除图表 而是想通过上下文检查光标是否位于图表内部
  • JS Array a['1'] 不会给出错误

    我已经声明了一个数组a 1 2 3 4 5 当我写作时a 1 it 返回 2这很好 但是当我写的时候a 1 它也是给我 2而不是给出错误 我原以为那里会出现错误 为什么会有这样的行为 所有属性名称都是字符串 如果您传递一个数字 它会在用于查
  • PrimeFaces 单击逐行展开

    I have 行扩展 http www primefaces org showcase ui data datatable expansion xhtml数据表
  • 使用自定义 SKAction 的 EaseOut 操作

    我有以下自定义 SKAction 工作 但作为 EaseIn 而不是 EaseOut 我想让它缓出 我使用网络上找到的各种缓动方程来纠正它 却惨遭失败 let duration 2 0 let initialX cameraNode pos