用彩色绘制你的SKPhysicsBody形状

7
使用SpriteKit创建游戏,并且实际效果非常好。我正在使用物理功能,能够实际查看我的物体在哪里,因为我的sprites中可能有一些alpha,这将非常有帮助。这也将有助于创建更精确的物体。
在SpriteKit文档中,他们谈到了一个debugOverlay,但是他们给出的唯一示例是绘制重力方向。以下是链接:https://developer.apple.com/library/ios/documentation/GraphicsAnimation/Conceptual/SpriteKit_PG/Actions/Actions.html
滚动到调试覆盖区域。
有没有人写过一些代码,可以轻松访问场景中所有对象的主体,并绘制它们的确切大小,并将其放置在相关位置?我很惊讶苹果没有添加任何类型的DrawGizmos属性到物理主体中。
提前致谢。

http://www.codeandweb.com/physicseditor/spritekit 这不是对问题的回答,但使用这样的工具肯定会帮助绘制正确的物理体! - Krzemienski
3个回答

34

我相信你早已回答了你的问题,但从 iOS 7.1 开始,现在可以使用:

skView.showsPhysics = YES;

这比 YMCPhysicsDebugger 更好用。YMCPhysicsDebugger也不再受支持。


2
这应该是正确的答案,对于iOS 8也适用。 - aramusss

2

这段内容来自RW教程书籍。

- (void)attachDebugRectWithSize:(CGSize)s {
    CGPathRef bodyPath = CGPathCreateWithRect( CGRectMake(-s.width/2, -s.height/2, s.width,   s.height),nil);
    [self attachDebugFrameFromPath:bodyPath];
    CGPathRelease(bodyPath); 
 }

 - (void)attachDebugFrameFromPath:(CGPathRef)bodyPath {
     //if (kDebugDraw==NO) return;
     SKShapeNode *shape = [SKShapeNode node];
     shape.path = bodyPath;
     shape.strokeColor = [SKColor colorWithRed:1.0 green:0 blue:0 alpha:0.5];
     shape.lineWidth = 1.0;
     [self addChild:shape]; 
  }

要在节点上使用此功能,

 [mySpriteToDebug attachDebugRectWithSize:contactSize];

谢谢,您推荐这本书吗?我昨晚正准备购买它。 - Krzemienski
如果你已经完成了 RW 网站上的所有教程,但仍然想要更多,那么是的。 - DogCoffee

0

你可以使用ymc-thzi的一个库。
https://github.com/ymc-thzi/PhysicsDebugger

用法:

import "YMCPhysicsDebugger.h"

- (void)createSceneContents {

  [YMCPhysicsDebugger init];

  // Create your nodes 

  [self drawPhysicsBodies];
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接