【发布时间】:2014-08-25 13:57:43
【问题描述】:
我正在使用一些新的 SpriteKit 工具,但遇到了一个令人沮丧的问题。
如您所知,iOS 8 引入了 SKFieldNode 类,它使用户能够创建影响其他 SKNode 的自定义“力场”。我使用 springField 和radialGravityFields 得到了很好的结果,但是我还没有弄清楚如何使用磁场和电场类型。
让我解释一下。
以下代码对 node4 绝对没有影响,我希望受 SKFieldNode 影响的 SKSpriteNode。
SKSpriteNode *node4 = [SKSpriteNode spriteNodeWithTexture:[SKTexture textureWithImageNamed:@"Red"] size:CGSizeMake(25.0, 25.0)];
node4.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:12.5];
node4.position = CGPointMake(300.0, 250.0);
node4.physicsBody.dynamic = YES;
node4.physicsBody.charge = 30;
node4.physicsBody.linearDamping = 3;
node4.physicsBody.affectedByGravity = NO;
node4.physicsBody.collisionBitMask = 0;
node4.physicsBody.mass = 1;
SKFieldNode *centerNode = [SKFieldNode magneticField];
centerNode.position = CGPointMake(150.0, 200.0);
centerNode.strength = 100000000000;
centerNode.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:25];
centerNode.physicsBody.charge = -30;
centerNode.physicsBody.dynamic = NO;
centerNode.falloff = 0;
节点在屏幕上绘制,但完全保持静态。如您所见,即使衰减为 0,强度为 10000000000,也会发生这种情况。
换行:
SKFieldNode *centerNode = [SKFieldNode magneticField];
进入:
SKFieldNode *centerNode = [SKFieldNode springField];
使centerNode充当springField,将node4发送到各处。
使用电场而不是磁场也不会产生任何结果。
在有人问之前,是的,我正在将两个节点都添加到场景中,只是没有包括这些行。
谁能看出我哪里出错了?
【问题讨论】:
标签: ios iphone sprite-kit ios8