Sprite kit 脉冲不';不适用于雪碧套件
每次触摸时,我都试图对SK中的精灵节点应用一个脉冲,但什么也没发生。触摸正在记录,但没有冲动Sprite kit 脉冲不';不适用于雪碧套件,sprite-kit,sprite,physics,Sprite Kit,Sprite,Physics,每次触摸时,我都试图对SK中的精灵节点应用一个脉冲,但什么也没发生。触摸正在记录,但没有冲动 -(id)initWithSize:(CGSize)size { if (self = [super initWithSize:size]) { /* Setup your scene here */ self.backgroundColor = [SKColor colorWithRed:0.15 green:0.15 blue:0.3 alpha:1.0]; s
-(id)initWithSize:(CGSize)size {
if (self = [super initWithSize:size]) {
/* Setup your scene here */
self.backgroundColor = [SKColor colorWithRed:0.15 green:0.15 blue:0.3 alpha:1.0];
self.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:self.frame];
SKSpriteNode *torso = [SKSpriteNode spriteNodeWithColor:[SKColor blueColor] size:CGSizeMake(40, 60)];
torso.position = CGPointMake (250,250);
torso.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:CGSizeMake(40, 60)];
torso.physicsBody.dynamic = YES;
[self addChild: torso];
SKSpriteNode *arm = [SKSpriteNode spriteNodeWithColor:[SKColor redColor] size:CGSizeMake(15, 50)];
arm.position = CGPointMake (235,235);
arm.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:CGSizeMake(40, 60)];
arm.physicsBody.dynamic = YES;
[self addChild: arm];
SKPhysicsJointPin *leftArm = [SKPhysicsJointPin jointWithBodyA:torso.physicsBody bodyB:arm.physicsBody anchor:torso.position];
[self.physicsWorld addJoint:leftArm];
}
return self;
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
[_torso.physicsBody applyImpulse:CGVectorMake(12, 10)];
NSLog(@"touch");
}
我的精灵节点确实有另一个节点链接到它,但我在没有附加节点的情况下尝试了Pulse,但它仍然不起作用。出于某种原因,为了移动我的精灵节点,我必须这样创建它
_torso = [SKSpriteNode spriteNodeWithColor:[SKColor blueColor] size:CGSizeMake(40, 60)];
而不是
SKSpriteNode *torso = [SKSpriteNode spriteNodeWithColor:[SKColor blueColor] size:CGSizeMake(40, 60)];
有一次我设置了一个断点,看到“躯干为零”,我参考了以前的一些工作,看到了我的错误。你在
initWithSize:
中创建了一个躯干
的新实例,但你似乎从未将\u躯干
设置为任何值。@MikeS,除非我像我想的那样修复它,对实例名称的更正没有改变任何东西!你到底改变了什么?设置一个断点并检查躯干是否nil@LearnCocos2D没有,我回答了我的问题。感谢两位的帮助您是否将躯干声明为弱变量/属性?这就可以解释了。