【问题标题】:Break a polygon into small pieces or triangles将多边形分成小块或三角形
【发布时间】:2013-12-21 12:17:41
【问题描述】:

我从 sprite-kit 框架开始,我想知道是否可以将正方形分解成三角形或其他小多边形。

我知道如何检测子弹和基本多边形之间的碰撞,但是在 Sprite-kit 中定义了任何方法来将多边形分割或分割成小的多边形?

提前致谢。

【问题讨论】:

    标签: game-physics sprite-kit


    【解决方案1】:

    我不相信有。我相信这就是关节的目的。您创建单个实体,然后使用固定关节将它们连接在一起。连接的实体作为一个整体,直到您决定破坏部分或全部关节。

    此页面包含有关创建关节的详细信息: https://developer.apple.com/library/IOS/documentation/SpriteKit/Reference/SKPhysicsJoint_Ref/Reference/Reference.html

    【讨论】:

      【解决方案2】:

      您可能想要使用类似this 的工具。 它允许您使用自定义形状定义physicsBody,例如:

      SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithImageNamed:@"img"];
      
      CGFloat offsetX = sprite.size.width * self.anchorPoint.x;
      CGFloat offsetY = sprite.size.height * self.anchorPoint.y;
      
      CGMutablePathRef path = CGPathCreateMutable();
      
      CGPathMoveToPoint(path, NULL, 24 - offsetX, 124 - offsetY);
      CGPathAddLineToPoint(path, NULL, 24 - offsetX, 47 - offsetY);
      CGPathAddLineToPoint(path, NULL, 339 - offsetX, 1 - offsetY);
      CGPathAddLineToPoint(path, NULL, 401 - offsetX, 3 - offsetY);
      CGPathAddLineToPoint(path, NULL, 452 - offsetX, 52 - offsetY);
      CGPathAddLineToPoint(path, NULL, 411 - offsetX, 78 - offsetY);
      CGPathAddLineToPoint(path, NULL, 295 - offsetX, 78 - offsetY);
      CGPathAddLineToPoint(path, NULL, 268 - offsetX, 93 - offsetY);
      CGPathAddLineToPoint(path, NULL, 95 - offsetX, 78 - offsetY);
      CGPathAddLineToPoint(path, NULL, 62 - offsetX, 124 - offsetY);
      
      CGPathCloseSubpath(path);
      
      sprite.physicsBody = [SKPhysicsBody bodyWithPolygonFromPath:path];
      

      【讨论】:

      • 哇,很好的答案。明天我会测试你的答案。谢谢。
      猜你喜欢
      • 2012-06-11
      • 2014-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-28
      • 2015-03-19
      • 2015-01-13
      • 2018-08-22
      相关资源
      最近更新 更多