【问题标题】:Sprite Kit How to change physics body programaticallySprite Kit 如何以编程方式更改物理体
【发布时间】:2013-10-28 03:33:39
【问题描述】:

如何以编程方式更改精灵的物理体? 这是我正在做的事情:

[mySprite removeFromParent];
mySprite.physicsBody = [MySprite body2];
// body setup
[myContainer addChild: mySprite];

但不知何故,它就是行不通。我做错了什么?

编辑:这是我的英雄角色,他由 3 个身体组成

  1. 英尺 - 作为英尺传感器的更大圆圈
  2. 多边形 - 我要水平翻转的那个
  3. 较小的圆圈 - 它固定在多边形上,以便纹理跟随其他物体

【问题讨论】:

  • 你打算做什么?您期望在这里发生什么,以及实际发生了什么?我从代码中得到的只是你从场景中移除一个精灵并将其添加到其他节点,同时显然添加或替换物理体。
  • 当我的英雄改变他面对的方向时,我试图改变物理体,但是当我运行这段代码时(我删除然后添加精灵,因为我认为这样做会更好改变身体而不是场景)身体没有改变,它是一样的
  • 或者当我的英雄改变方向(仅左/右)时改变身体的最佳方法是什么?
  • 通过旋转精灵来旋转身体。除非您想改变身体的形状,否则您只需要这样做。您没有发布 body2 方法,所以我无法判断 body 是否实际上是相同的。
  • 您可以使用具有两个不同主体的两个精灵,在任何时候只能启用一个或另一个。即设置一个精灵为隐藏,它的body的contactTestBitMask为0。

标签: ios sprite-kit skphysicsbody


【解决方案1】:

你可以像这样镜像精灵:

mySprite.xScale = -1; // assuming the scale desired is indeed 1.

我相信你可以对 SKShapeNode 做同样的事情,所以你可以对你的物理体做同样的事情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-13
    • 1970-01-01
    • 1970-01-01
    • 2015-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多