我正在尝试制作一个游戏,其中我有一些 SKSpriteNodes 并且用户可以用手指移动来击打它们,我正在使用苹果的新 Sprite Kit。
为此,我尝试了一个技巧 - 将 Sprite - “X”(SKSpriteNode)放置在手指所在的位置,当用户移动手指时 - 更改此 X sprite 的位置,
问题是它只会在它不运动的情况下撞击其他精灵,我希望其他精灵对移动手指的当前速度做出响应 - 手指移动越快 - 碰撞应该越强。
你能帮帮我吗?
虽然我觉得这个技巧不是正确的方法,但我也在发布代码。
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { if([touches count]==1) { self.X= [[SKSpriteNode alloc]initWithImageNamed:@"X"]; self.X.name= @"X"; UITouch *t= touches.allObjects[0]; self.X.position= [t locationInNode:self.GameNode]; self.X.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:20]; self.X.physicsBody.dynamic=YES; // Tried NO too... self.X.zPosition=1; [self.GameNode addChild:self.X]; } } -(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { UITouch *t = touches.allObjects[0]; self.X.position = [t locationInNode:self.GameNode]; } -(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { [self.X removeFromParent]; }