Wil*_*son 5 ios ios7 sprite-kit
SKNode 有一个锚点属性,它的行为符合我的预期。但是,如果我更改 SKNode 的默认锚点(即 (0.5,0.5)),SKNode 的物理体将与 SKNode 场景中显示的内容不一致。
我在 IOS 7 上。
有什么办法可以解决这个问题,这样我就可以使用 SKNode.anchorpoint 的非默认值,而不会导致显示的 SKNode 和 SKNode.physicsbody 之间出现错位?
这是一个例子。在 SKScene.didMoveToView() 实现中,添加以下代码:
// Set up the scene.
self.anchorPoint = CGPointMake(0.5, 0.5);
self.backgroundColor = [SKColor yellowColor];
self.scaleMode = SKSceneScaleModeAspectFill;
// BLOCK
SKSpriteNode *block = [SKSpriteNode spriteNodeWithColor:[SKColor greenColor] size:CGSizeMake(50, 50)];
block.name = @"Block";
block.anchorPoint = CGPointZero;
block.position = CGPointMake(0., 0.3*self.size.height);
block.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize: block.size];
[self addChild: block];
// FLOOR
SKSpriteNode *floor = [SKSpriteNode spriteNodeWithColor: [SKColor blueColor] size:self.size];
floor.name = @"Floor";
floor.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize: floor.size];
floor.physicsBody.dynamic = NO;
floor.position = CGPointMake(0., -0.9*self.size.height);
[self addChild: floor];
Run Code Online (Sandbox Code Playgroud)
当我运行这段代码时,方块掉到了地板上,但是由于它的物理体和它的精灵之间没有对齐,所以它远远高于地板。如果我注释掉设置块锚点的行,一切正常。
| 归档时间: |
|
| 查看次数: |
5950 次 |
| 最近记录: |