gpt4 book ai didi

sprite-kit - 使用 moveTo 操作时缺少对象的正确碰撞行为

转载 作者:行者123 更新时间:2023-12-02 08:37:42 24 4
gpt4 key购买 nike

我刚开始使用 SpriteKit 并遇到了一个问题:

我想要一个对象,我称之为 playerController,它跟随玩家的触摸和冰球,可以被 Controller 击中,在这种情况下 Controller 会反弹。

有点像 AirHockey 游戏。

我构建了 2 个具有纹理和物理特性的 SKNode,因此如果重力开启或 Controller 以某种速度移动,它们会正确地相互弹跳。

但是如果 Controller 通过以下 Action 移动,则冰球不会反弹。

SKAction *moveTo = [SKAction moveTo: CGPointMake(touch.position.x ,touch.position.y) duration: 0.1];
[self.controllerPlayerOne runAction: moveTo];

为什么?我已经在文档和几个教程中进行了搜索,但都没有解决我的问题。或许这是SpriteKit开发者想要的,但是这种情况下following a touch是怎么实现的呢?

希望有人能提供帮助。

编辑:

目前,我通过将 Controller 位置设置为触摸位置并在每次触摸移动时使用触摸的最后位置和当前位置计算速度来获得 Controller 圆盘行为。

这工作得很好。

最佳答案

这是设计使然。在 cocos2d btw 中可以观察到相同的行为。

问题是:移动 Action 移动的是 Sprite ,而不是物理体。即使物理体确实跟随 sprite,移动 Action 也会否决物理体运动,最多将其放在 sprite 所在的位置。

相反,当使用物理物体时,您必须通过改变物体的速度来移动它们,您不能再可靠地使用移动 Action 。然后物理体移动 Sprite 。

关于sprite-kit - 使用 moveTo 操作时缺少对象的正确碰撞行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19660922/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com