问题标签 [skphysicscontact]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - 快速编程。SKPhysicscontact 可能存在的问题
我正在开发一个项目/游戏,我一直在为游戏添加新敌人并对其进行编程。这就是我的代码在我开始更改之前的样子,并且只有一种“外星人”。我想创建两种新类型,一种是你因击球而失去 5 分,另一种是 10 分。在现在的代码中,只有三种类型中的一种,它给出 +5 分。各位大佬怎么加两个新的?我想我想多了,这就是我搞砸的原因。
swift - 如何修复未调用 SKPhysicsContactDelegate
我的精灵应该相互联系并打印到控制台,但是,一个在另一个后面,它们实际上并没有接触。不用说,没有任何东西被打印到控制台。
我已经尝试在函数中使用许多不同“类型”的 if 语句,但是,它们都没有奏效。例如,我尝试过使用:
如果 bodyA.categoryBitMask == 1 && bodyB.categoryBitMask == 2 || bodyA.categoryBitMask == 2 && bodyB.categoryBitMask == 1
也:
如果contact.bodyA.categoryBitMask <contact.bodyB.categoryBitMask
帮助将不胜感激!:)
我应该收到消息,但是“e”在“square”后面,我没有收到任何消息。
swift - SpriteKit 碰撞检测未按预期工作
所以我在我的GameScene
班级中有这段代码(的孩子SKScene
):
我可以看到气球和猴子节点在模拟器中已经相互接触,但是没有任何反应。我也遵守了SKPhysicsContactDelegate
协议,如下所示:
编辑:我设置isDynamic = true
并打印“联系!!” 正如预期的那样,但是我不希望物体影响彼此的位置
swift - 与 SKPhysicsContactDelegate 的可选碰撞
是否有可能在空间发生碰撞之前取消它?
示例:A 和 B 即将发生碰撞,但 A 具有一个属性,因此对于特定的 SKPhysicsContact,不应发生与 B 的碰撞。空间中的所有其他碰撞应该不受影响。
在阅读 Apple 的课程文档时,它说:
在物理模拟步骤期间调用物理接触委托方法。在此期间,无法修改物理世界,并且在模拟中对物理实体的任何更改的行为都是未定义的。如果您需要进行此类更改,请在 didBegin( :) 或 didEnd( :) 中设置一个标志,并在 SKSceneDelegate 的 update(_:for:) 方法中响应该标志进行更改。
这是否意味着我可以在实际碰撞成为事实之前检测到didBegin()中的状态并在update ()中更改碰撞掩码?
有一个类似主题的旧线程:SpriteKit SKPhysicsBody 在一个方向上碰撞,就像一扇门,你只能通过但不能返回
swift - Swift:在节点之间接触时执行命令
现在,我有一块从屏幕上掉下来的砖头。当它击中我的方格时,什么也没有发生。如下图所示,我有四个三角形在同一个位置组成一个正方形,但不透明度较低。这是为了帮助区分接触到正方形的哪一侧。然而,没有任何东西重生或消失会赢得砖块击中三角形(构成正方形的三角形)。
swift - 如何在 didBegin 联系函数中更改 SKShapeNode 的 fillColor?
我的目标是在 SKShapeNode 与另一个节点发生碰撞时立即更改该节点的 fillColor。我确实知道如何在碰撞点编辑物理体,但我无法弄清楚如何更改节点的填充或描边颜色等属性。
SKShapeNode:
然后我测试玩家和积木之间的接触:
我知道我可以通过使用来改变物理体本身
,但我不知道如何将 bodyB 的 fillColor 例如更改为红色。
我感谢您的帮助!
swift - 无法检测 spritekit 中的碰撞
我正在尝试构建游戏,但未检测到我的物理身体接触。你能帮帮我吗?我已经设置了physicsWorldDelegate 和categorybitmasks,但无法弄清楚出了什么问题。操场无法检测到敌人和我的头像之间的碰撞。
这是我的问题的 GIF - https://giphy.com/gifs/U7nmXZgVxNcCuvJc7j
swift - 已解决:防止 Sprite 在碰撞时倾斜?
如何防止两个精灵节点在碰撞时倾斜。假设我有一个带有 PhysicsBody 1 的长矩形和一个带有 PhysicsBody 2 的短矩形。我希望这两个能够击中,但不希望长矩形在碰撞后倾斜但仍然笔直站立。我怎样才能做到这一点?这是长矩形的代码:
这是短矩形的代码:
swift - EdgeFromLoop 似乎没有调用 didBegin?
我正在尝试编写一个游戏,其中星星从 iphone 屏幕的顶部落到底部。我想在它们离开屏幕时删除我的星图。我尝试使用physicsContactDelegate,并使用edgeFromLoop(self.frame)在我的框架周围创建一个边缘,但从未调用过didBegin。
下面是我的 gameScene.swift 文件
这是我的 GameViewController
我是一个快速的初学者,我知道我的问题可能非常基本,但我非常感谢任何帮助!谢谢!
swift - 如何通过接触从 SKNodes 获取一个实体 SKPhysicsBody 或 SKNode 对象?
我正在尝试创建一个类似于 House Stack 的游戏(https://apps.apple.com/gb/app/house-stack/id1458713825?l)但在分配物理机制时遇到问题。
我的主要问题是当节点下降并与其他人接触时创建一个对象,并在它们达到特定高度时将它们以固体形式向下移动。
我试图创建节点之间接触的固定关节,并在最后一个节点位置 y = 0 时移动它们,但固定关节没有像我想的那样工作。节点像蛇一样摇晃并在移动时崩溃。
还尝试使用接触创建一个新的单个对象并计算其高度,但无法弄清楚我应该如何使用 init(body:[SKPhysicsBody])。即使我将物理体属性分配给新对象,我也无法测量或调用它的高度并使用另一个节点联系人更新身体。
任何想法或例子都会很好。这是我的代码,在此先感谢。
SKNode(内部touchesBegan多次创建同一个节点):
移动对象:
关节和动作: