有什么方法可以在 Swift 中逐渐加快游戏速度吗?

2024-01-08

我目前正在使用 Spritekit 开发一款游戏。游戏中的物体会在屏幕顶部产生并落向玩家角色,当玩家角色与任何物体碰撞时游戏结束。我正在尝试找到一种方法,随着时间的推移逐渐加快游戏速度,使游戏变得更加困难(即游戏开始时物体以正常速度下落,5秒后加速50%,再过5秒再加速50%,无穷无尽。)

我是否需要使用 NSTimer 进行倒计时以增加施加到下落物体的重力?抱歉,如果这是一个基本的事情,我对编程有点陌生。

谢谢,杰克

EDIT:

我的敌人生成方法-

let spawn = SKAction.runBlock({() in self.spawnEnemy()})
let delay = SKAction.waitForDuration(NSTimeInterval(2.0))
let spawnThenDelay = SKAction.sequence([spawn, delay])
let spawnThenDelayForever = SKAction.repeatActionForever(spawnThenDelay)
self.runAction(spawnThenDelayForever)

还有我让敌人倒下的方法——

func spawnEnemy() {
    let enemy = SKNode()
    let x = arc4random()
    fallSprite.physicsBody = SKPhysicsBody(rectangleOfSize: fallSprite.size)
    fallSprite.physicsBody.dynamic = true
    self.physicsWorld.gravity = CGVectorMake(0.0, -0.50)
    enemy.addChild(fallSprite)
}

In spawnEnemy(),你设置self.physicsWorld.gravity。将此行移至您的update:方法。

如果您现在没有跟踪游戏的持续时间,您将需要实现它。您可以使用的参数update:方法来实现这一点。

然后,您可以使用游戏持续时间来改变重力。

例如,

override func update(currentTime: CFTimeInterval) {
    if gameState == Playing{
        //update "duration" using "currentTime"
        self.physicsWorld.physicsBody = CGVectorMake(0.0, -0.50 * (duration / 10.0))
    }
}

10.0可以根据您希望重力增加的速度进行更改。数值越大,变化幅度越小,数值越小,重力增加得相当快。

希望这能回答您的问题。

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

有什么方法可以在 Swift 中逐渐加快游戏速度吗? 的相关文章

  • 如何通过 CollectionView 中的流布局将单元格对齐到顶部

    在此代码中 我尝试更改 UICollectionView 的第一个单元格的大小以及具有相同大小的其他单元格的大小 但在第一行中 当我想要两个单元格出现时 只有一个单元格出现 func collectionView collectionVie
  • 应用程序因使用私有 API“commentText”而被拒绝

    我的应用程序更新刚刚被拒绝 并显示以下消息 您的应用程序使用或引用以下非公共 API 评论文本 我搜索了 StackOverflow 以了解如何使用 nm 和 otool 来检查我的库中的私有 API 但我无法让它工作 另外 我有一种轻微的
  • 如何在 iOS 中按下后退按钮时创建确认弹出窗口?

    我想在有人按下 iOS 应用程序的 后退 按钮时添加一个弹出窗口 询问用户是否真的想回来 然后 根据用户的响应 我想撤消该操作或继续 我尝试在视图的 viewWillDisappear 函数中添加代码 然后编写正确的委托 但它不起作用 因为
  • iOS 绘制圆圈

    我正在尝试在我的 iOS 应用程序中创建下面的圆圈 我知道如何制作圆圈 但不完全确定如何沿着弧线获取点 它必须是代码而不是图像 下面也是我目前拥有的代码 void drawRect CGRect rect CGPoint point poi
  • @IBDesignable 错误:IB Designables:无法更新自动布局状态:Interface Builder Cocoa Touch Tool 崩溃

    我有一个非常简单的 UITextView 子类 它添加了 占位符 功能 您可以在文本字段对象中找到该功能 这是我的子类代码 import UIKit import Foundation IBDesignable class Placehol
  • 我可以在 where 子句中使用 or ( || ) 吗?

    我正在尝试延长Array类型 但我只希望类型为时可用的函数Int or Float 我知道我可以针对一种类型执行此操作 extension Sequence where Iterator Element Int 但我可以对多种类型执行此操作
  • iOS 中的 NSCachesDirectory 和 NSDownloadsDirectory 有什么区别?

    我想将下载的杂志保存到我的 iOS 应用程序中的一个目录中 它似乎NSCachesDirectory and NSDownloadsDirectory是合适的 我不知道它们之间有什么区别 以及哪一种适合下载杂志 任何建议表示赞赏 内存不足时
  • 同一参数有两个不同的名称有什么意义?

    func mapEachElement inArray arr Int withFunc aFunc Int 为什么会有 inArray 然后 arr 有什么意义 对于 withFunc 和 aFunc 也是如此 它使代码变得更加复杂并且阅
  • iOS UITableViewCellAccessoryCheckmark 在每次滚动时可见

    我有一个列表 我将其用作复选框 我已启用或禁用选择行上的复选标记 但是当我滚动列表时 它会在每 10 行之后标记行 void tableView UITableView tableView didSelectRowAtIndexPath N
  • 从 UIImagePickerControllerReferenceURL 加载 UIImage

    我正在使用 UIImagePickerController 来允许用户从图像库中选择图像 然后我想在 sqlite 数据库中启动该文件的位置 以便稍后可以参考它 我一直在谷歌上搜索如何做到这一点 但我的结果相当简短 我知道我可以通过调用委托
  • Apple 如何通知 iOS 应用程序内购买 (IAP) 退款?

    我在我的应用程序中成功实现了 Apple iOS IAP 并在沙箱中进行了测试 效果很好 我担心用户可能会通过 IAP 购买商品 将其下载到我的应用程序中 然后向 Apple 投诉并获得退款 没有明显的方式将退款报告给我的应用程序 它们是否
  • SWIFT:+[CATransaction Synchronize] 在解码 HTML 实体时在事务中调用

    我正在制作一个获取博客 JSON 内容的应用程序 博客文章的标题显示在 tableView 中 获取的标题是 HTML 编码的 所以我用这段代码解码了它们 func configureCell cell UITableViewCell at
  • 关于 S3 文件传输的权限

    我正在使用 S3TransferManager Sample 进行测试 我创建了Cognito并设置了IAM并最后更改了constants swift文件 我上传没有问题 但下载失败 错误信息是 下载失败 错误域 com amazonaws
  • 在 Swift 2.0 中隐藏 Home 指示器

    我希望隐藏 Home Indicator 虽然这在 Swift 中很简单 但在 SwiftUI 中似乎并不那么容易 我尝试使用这个 如何使用 SwiftUI 隐藏 home 指示器 https stackoverflow com quest
  • .net MVC 将 MP4 流式传输到 iDevice 问题

    我一直在编写用于提供视频服务的一段代码 但遇到了一些问题 代码如下 public ResumingFileStreamResult GetMP4Video string videoID if User Identity IsAuthenti
  • 如何防止 iPhone 4 在添加到主屏幕时截断我的标题?

    我的网页标题很长 当添加到 iPhone 旧版本的主屏幕时 整个标题在确认对话框中可见 当我添加到 iPhone 4 的主屏幕时 标题在第 12 个符号之后被切断 有没有办法阻止这种剪切 让 iPhone 默认显示完整标题 显然会有一个无证
  • ios7 绘图时出现延迟

    我有一个应用程序 在其中我正在视图上绘制一些草图 到目前为止 在我安装之前它运行良好ios7 我的应用程序使用触摸移动方法来识别运动的变化 但是当我画一条线时 触摸方法被调用 但线不会更新 直到我触摸结束ios7 所以画起来有一点点滞后 它
  • 去除iOS输入阴影

    在 iOS Safari 5 上 我必须遵循输入元素 顶部内部阴影 我想删除顶部阴影 错误 webkit appearance不保存 目前的风格是 input border radius 15px border 1px dashed BBB
  • iOS:启动图像多语言

    我有一个多语言应用程序 我的问题是启动图像 根据设备的语言使用启动图像的方法是什么 有什么东西在info plist file 解决方案是像项目中的任何其他资源一样本地化 Default png 从 Xcode 的项目列表中选择 Defau
  • 如何检测文本是否可读?

    我想知道是否有一种方法可以告诉给定的文本是人类可读的 我所说的人类可读的意思是 它有一些含义 格式就像某人写的文章 或者至少是由软件翻译器生成的供人类阅读的文章 这是背景故事 最近我正在制作一个应用程序 允许用户将短文本上传到数据库 在部署

随机推荐

  • 向 Maven 项目添加本地依赖的最佳方法

    对此有很多疑问 但答案似乎相互矛盾 所以我想向它询问我的 Maven 版本 3 0 4 我有一个 JAR 文件 它不属于任何 Maven 存储库 这是本地依赖 我知道有两种方法可以将其添加到我的 Maven 项目中 将其添加为依赖项并在中指
  • webpack-dev-server 为 root localhost:8080 设置了错误的路径

    我是 ReactJS 的真正初学者 我需要你帮助为 localhost 8080 设置 webpack dev server 我正在关注这个设置它 但在教程中它的工作中我还无法获得成功 它将根路径设置为 node module bin并在其
  • Android Action Bar 选项卡 - 内部片段事务问题

    我已经使用 Google 自己的以下示例成功在操作栏中设置了选项卡 http developer android com resources samples ApiDemos src com example android apis app
  • 引用system.web.cors

    我正在尝试在我的 Web API 中实现 cors 支持 我已经阅读了有关此主题的几篇博客文章 但我似乎找不到 System Web Cors dll 或 System Web Http Cors dll 我需要安装什么东西吗 创建一个 N
  • 将列表 java.awt.geom.Point2D 转换为 java.awt.geom.Area

    我有一组点 我想将它们变成 Java 中的闭合多边形 我目前正在尝试使用 java awt geom Point2D 和 java awt geom Area 但无法弄清楚如何将一组点转换为区域 我想我可以根据这些点定义一组 Line2D
  • 通过 Visual Studio 运行应用程序时出现“访问冲突”

    当我从 Visual Studio 中运行命令行应用程序时 一个命令总是失败并出现以下错误 The program 7316 MyProgram vshost exe has exited with code 1073741819 0xc0
  • 如何删除文件夹中的所有文件,但不删除文件夹本身?

    我尝试删除文件夹中的所有文件 包括子目录 NSFileManager deleteMgr NSFileManager defaultManager NSString path test deleteMgr removeItemAtPath
  • UISearchBar纯色

    我想要一个带有纯色而不是渐变的 UISearchBar 我有这个 UISearchBar mySearchBar UISearchBar alloc initWithFrame self tableView bounds mySearchB
  • MVC4 是否已融入 .NET 4.5?

    Visual Studio 2012 的许多发行说明都谈到 NET 4 5 和 MVC4 但我无法判断 MVC4 是否实际上是 NET 4 5 版本的一部分 有人确切知道吗 我希望不必在我的服务器上单独安装 MVC 不 ASP NET MV
  • 我应该使用什么列类型/长度来在数据库中存储 Bcrypt 哈希密码?

    我想在数据库中存储散列密码 使用 BCrypt 哪种类型比较合适 哪种长度合适 使用 BCrypt 散列的密码是否始终具有相同的长度 EDIT 哈希示例 2a 10 KssILxWNR6k62B7yiX0GAe2Q7wwHlrzhF3Lqt
  • 调用基函数,然后调用继承函数

    我有一个基类和一个继承基类的类 基类有几个虚函数 继承类可以重写这些虚函数 但是 基类中的虚拟函数具有必须在调用继承类重写之前运行的代码 有什么方法可以让我先调用基类虚函数 然后再调用继承的类重写 无需调用base function 我知道
  • 如何从XML文件读取数据并将其存储到数据库(MySQL)中?

    我需要从 XML 文件获取数据并将其存储到 MySQL 数据库中 我正在考虑使用 SAX 解析器来解析数据 但我不确定如何将数据有效地存储到数据库中 我正在考虑一些技术 例如JDBC http en wikipedia org wiki J
  • Python、Selenium 和 Beautiful Soup for URL

    我正在尝试使用 Selenium 编写一个脚本来访问 Pastebin 进行搜索并以文本形式打印 URL 结果 我需要可见的 URL 结果 仅此而已 div class gs bidi start align gs visibleUrl g
  • 监控应用程序对 DLL 的调用

    简而言之 我想监视从应用程序到 DLL 的选定调用 我们有一个旧的 VB6 应用程序 我们丢失了它的源代码 当时公司没有使用源代码控制 此应用程序使用第 3 方 DLL 我想在新的 C 应用程序中使用这个 DLL 不幸的是 DLL API
  • 如果存储过程中参数为空,则选择全部

    我想在 SQL Server 中创建一个过程来选择并连接两个表 参数 company from 和 to 始终被设置 但 serie type 可以为NULL 如果 serie type不为NULL我只想包含指定的类型 简单AND S Ty
  • 我们什么时候应该将 String 更改为 Stringbuilder?

    在应用程序中 字符串是一种常用的数据类型 我们知道 字符串的突变会占用大量内存 所以我们能做的就是使用 StringBuilder StringBuffer 但什么时候我们应该改用 StringBuilder 呢 当我们必须拆分它或替换其中
  • 使用 apache ant 构建时未找到属性“hardwareAccelerated”的资源标识符

    我的应用程序针对 android API 级别 7 2 1 在 Eclipse 下一切正常 生成的 APK 在 2 1 设备上也可以正常工作 我尝试使用 apache ant 构建应用程序并收到此错误 相同问题的所有解决方案都告诉我必须设置
  • YouTube API - 通过播放列表查询获取所有视频的标签

    我正在查询 YouTube 频道以检索播放列表元数据 如下所示 https www googleapis com youtube v3 playlistItems part snippet 2CcontentDetails maxResul
  • getEdgeFlags 总是返回 0?

    为什么我无法获取getEdgeFlags 是否能够检测到边缘触摸 我延长了DrawerLayout 然后做了 Override public boolean onInterceptTouchEvent MotionEvent ev int
  • 有什么方法可以在 Swift 中逐渐加快游戏速度吗?

    我目前正在使用 Spritekit 开发一款游戏 游戏中的物体会在屏幕顶部产生并落向玩家角色 当玩家角色与任何物体碰撞时游戏结束 我正在尝试找到一种方法 随着时间的推移逐渐加快游戏速度 使游戏变得更加困难 即游戏开始时物体以正常速度下落 5