Swift:如何让游戏中的角色只有落地后才能跳跃?

2024-05-29

我正在开发一款游戏,我的角色可以从一个陆地跳到另一个陆地。我已经把所有事情都做好了,除了我剩下的问题是,如果你继续点击屏幕,他可以永远跳跃。我希望他必须先落地才能再次跳跃。

import SpriteKit
import GameplayKit

class GameScene: SKScene, SKPhysicsContactDelegate {
    struct PhysicsCatagory {
        static let Knight : UInt32 = 0x1 << 1
        static let land : UInt32 = 0x1 << 2
    }

    var Knight = SKSpriteNode()
    var land = SKSpriteNode(imageNamed: "CJLand4")

这是我当前的代码,让他跳了起来:

Knight.physicsBody?.velocity = CGVector(dx: 0, dy: 0)
Knight.physicsBody?.applyImpulse(CGVector(dx: 0, dy: 325))

我下面有这个touchesBegan它增加了重力,一冲动就可以让他跳跃。但我只希望他每次落地时都能跳一次。如果可以的话请帮忙。


你可以检查垂直速度是否为0,骑士只有在落地时才会跳跃。这实际上取决于您正在寻找的跳跃类型。

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

Swift:如何让游戏中的角色只有落地后才能跳跃? 的相关文章

随机推荐

  • SVG定位

    我正在使用 SVG 但在定位方面遇到了一些问题 我有一系列形状包含在g组标签 我希望像容器一样使用它 这样我就可以设置它的 x 位置 然后该组中的所有元素也会移动 但这似乎不可能 大多数人如何定位您希望串联移动的一组元素 有相对定位的概念吗
  • 测试 CodeIgniter 会话变量的正确方法是什么?

    获取以下代码片段 测试确保会话变量不为空的最佳方法是什么 如果稍后在我的脚本中 我调用以下内容 第一个打印正确 但在第二个我收到消息 未定义的变量 已登录 我尝试过使用 empty and isset 但两者均未成功 我还尝试使用向后执行
  • Swift try inside Objective-C 块

    我需要创建一个函数foo它接受一个抛出闭包作为参数 我可以使用 Swift 或 ObjC 来实现它 但我需要能够从两者中调用它 像这样 Swift func bar throws func foo block throws gt void
  • 如何使用 apache2 和 mod_proxy_fcgi 禁用缓冲?

    我在 debian Jessie 上使用 mod proxy fcgi 和 apache 2 4 以及我的 C 应用程序 该应用程序使用 libfcgipp 执行 ServerSentEvents 我的问题是 apache 仍然缓冲我的响应
  • jquery的empty()方法会清除通过非jquery方式创建的事件监听器吗

    我有一个包含很多子元素的元素 我想清除该元素的内容并用新的结构替换它 子元素分配有各种事件侦听器 并且并非所有这些侦听器都是通过 jquery 绑定方法创建的 如果我使用 jquery 的空方法来清除元素 它会删除所有事件侦听器还是只会清除
  • 如何在 Flutter 上实现聊天气泡中的时间文本换行行为

    许多本机移动聊天信使 例如 telegram whatsapp 等 都实现了这种换行行为 当没有足够的文本空间时 将时间标签换行到新行 简单的聊天气泡由两部分组成 文本和时间标签 在简单的情况下 它们几乎位于同一基线上 即使文本是多行 最后
  • 从表中删除除第一个之外的所有子元素?

    My HTML table tr td 1 td tr tr td 2 td tr tr td 3 td tr table 如何删除用户表中除第一个之外的所有子元素使用 jQuery 我尝试过的 user table children re
  • 具有行为路径重定向的多个 Cloudfront 起源

    我有两个 S3 存储桶用作我的 Cloudfront 源服务器 example bucket 1 example bucket 2 两个存储桶的内容都位于这些存储桶的根中 我正在尝试将我的 Cloudfront 发行版配置为基于 URL 模
  • 如何从流集合中删除最后一个元素 (DockerClient)

    您好 我有一个流集合 我按创建日期对其进行排序 我需要从此集合中删除所有元素 但较少删除最后一个元素 这是我的代码 List
  • 为什么我的日期选择器看起来这么奇怪?

    我正在尝试使用 jquery UI 我下载了所有内容并按照说明进行操作 我在 html 中添加了这样的代码
  • 消息队列与套接字

    我没有太多的套接字编程经验 但我尝试阅读一些相关内容 我对 MDB 和消息队列非常熟悉 有人告诉我队列 例如 MDB 只不过是直接套接字连接 有人可以帮我比较一下这两个吗 两者是无与伦比的 因为它们代表不同的layers 这就像将关系数据库
  • 如何在 C# 中从这个分层父子结构中查找任何项目

    如何从列表中查找任何项目 因为它是动态的 它可能位于列表的任何位置的父项或子项中 并且当子项计数为0时需要停止查找 下面是列表的模型和分层父子结构示例 例子 父级 gt 子级 gt 子级 gt 子级或父级 gt 子级 gt 子级 gt 子级
  • java.nio.file.FileSystemException:该进程无法访问该文件,因为该文件正在被另一个进程使用

    我正在编写一个程序 该程序在第一次执行时将自身复制到特定文件夹 在 Linux 或 Windows 中工作 在 Linux 中它工作得很好 但是当我尝试在 Windows 上执行相同操作时 我收到以下错误 java nio file Fil
  • 如何配置手动预配的 Azure 托管磁盘以用作 Kubernetes 持久卷?

    我正在尝试运行Jenkins Helm 图表 https github com kubernetes charts tree master stable jenkins 作为此设置的一部分 我想传递我提前配置的持久卷 或者可能在迁移期间从另
  • 检查值是否是对象文字?

    我有一个值 并想在迭代它之前知道它是否是可迭代的对象文字 我怎么做 这应该适合你 if Object prototype toString call someObject object Object do your iteration Fr
  • 每个分支的 Git 磁盘使用情况

    你知道是否有办法列出每个分支的 git 存储库的空间使用情况 喜欢df or du would 分支的 空间使用情况 是指 尚未在存储库的其他分支之间共享的提交所使用的空间 这没有正确的答案 如果您查看仅包含在特定分支中的提交 您将获得 b
  • 多个原始输入窗口接收器

    我有一个仅消息窗口 ATL CWindowImpl 它使用 RIDEV INPUTSINK 标志将自身注册为原始输入 这意味着无论该窗口是否是前台窗口 它都会获取所有输入 当该窗口只有一个实例时 这非常有效 但是 当我创建超过 1 个窗口实
  • EnableEventValidation="false" - 好主意吗? [复制]

    这个问题在这里已经有答案了 可能的重复 的目的 https stackoverflow com questions 1503630 purpose for pages enableeventvalidation false 我还有另一个相关
  • 从 Rails Helper 返回多个标签的最佳方法是什么?

    我想创建一个隐藏字段并在一个助手中创建一个链接 然后将两者输出到我的 erb 应该输出结果 link to something a path form hidden field something tableize value gt som
  • Swift:如何让游戏中的角色只有落地后才能跳跃?

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