当前位置: 首页 > 知识库问答 >
问题:

不使用物理时,Sprite Kit中的冲突检测是否具有确定性?

井逸明
2023-03-14

多亏了这篇文章:http://blog.element84.com/comparing-sprite-kit-physics-to-direct-box2d.html和个人经验,雪碧工具包在使用物理模拟时不是确定性的。然而,我想知道当以确定性的方式处理节点的位置时,碰撞逻辑是否真的是确定性的。即重复性工作正常,但我的位置处理。

谢谢!

更新:添加了更多详细信息

在SpriteKit中,物理模拟似乎不是确定性的,因为它们是在游戏循环中评估的,并且根据设备的帧速率,它们可以以不同的速率执行。我的问题是,碰撞检测(如didBeginContact方法)用于独立于循环的物理体,并在节点位置改变后立即调用。我试图仅使用Sprite Kit中的碰撞属性来实现2个实例的可重复性,这些实例可能以不同的帧速率执行。

共有1个答案

谭俊
2023-03-14

为了以防万一这可以帮助某人,我刚刚发现所有碰撞都发生在Sprite Kit循环中,因此它们不是可重复的,也不是确定性的。

 类似资料:
  • 我有4个物理体,它们都很好地检测到碰撞。然而,有两个物理体不会检测到它们何时相互碰撞。不过,它们会检测到它们何时与其他物理体碰撞。我有所有这些物理体的联系人测试位掩码,所以我不明白为什么会有问题。以下是一些代码:这是我设置物理体的地方: 以下是我用于设置玩家物理体(其中一个问题物理体)的代码: 以下是检测碰撞的函数: 下面是我用来设置蓝球的代码。这是另一个有问题的物理体: 这里的任何想法都会有所帮

  • 我注意到以下几点: 如果我创建了一个具有物理边界(

  • 问题内容: 如何检测两个元素是否发生冲突? 这两个div是简单的彩色框,彼此垂直,因此没有复杂的形状或角度。 问题答案: 一般思路-获得框的偏移量和尺寸,并检查它们是否重叠。 如果要更新,可以使用: 另外,请注意,您可以针对特定示例优化功能。 因为它们是固定的,所以您不必重复读取框的尺寸(就像我在代码中一样)。您可以在页面加载时读取它们(将其读取到变量中),然后仅读取变量 小盒子的水平位置不会改变

  • 我正在尝试为我的大学工作制作一个基于2D平台的游戏(在SFML)。我不是要求任何人为我编写一些代码,但如果有人能提供一些指示,我将非常感激:) 目前我有大约13门课,包括: BaseEntity(大多数游戏对象都是由此派生的) 玩家(继承自BE) 魔法宝石(玩家需要这些来通过关卡晋级) 平台 SolidBlock(从平台继承) 可以说,我已经构建了大部分的游戏“积木”--每个类都有自己的更新函数,

  • 问题内容: 有没有办法检查输入流()是否有数据? 从GO的初始stdin中读取帖子?显示了如何读取数据,但是不幸的是,如果没有数据通过管道传送到stdin中,则会阻塞。 问题答案: os.Stdin与其他任何“文件”一样,因此您可以检查其大小: 我将其构建为“管道”可执行文件,其工作方式如下:

  • 我正在使用libGdx,创建一个简单的平台游戏。我正在使用Tiled创建映射和LibGdx tiledMap呈现器。它的设置与SuperKoalio libgdx示例类似。 我现在的碰撞检测,它只是确定玩家是撞到了它的右边,上面还是下面的一个瓷砖。当它检测到右侧碰撞时,它将玩家状态设置为Standing。对播放机的控制是通过InputHandler完成的。当D键被按下时,它将玩家的状态设置为行走,