Ios 在节点中使用精灵工具包问题进行游戏开发?

Ios 在节点中使用精灵工具包问题进行游戏开发?,ios,ios7,sprite-kit,Ios,Ios7,Sprite Kit,当用户触摸屏幕时,从y轴和x轴的中间创建SKSpriteNode图像为零。SKSpriteNode图像到达触摸位置。工作正常。当用户多次连续触摸时,创建了多个SKSpriteNode图像,但多个SKSpriteNode图像相互碰撞,然后除了第一个图像外,角度发生了变化。我需要图像一个接一个地移动,而不改变角度 - (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { UITouch * touch = [

当用户触摸屏幕时,从y轴和x轴的中间创建SKSpriteNode图像为零。SKSpriteNode图像到达触摸位置。工作正常。当用户多次连续触摸时,创建了多个SKSpriteNode图像,但多个SKSpriteNode图像相互碰撞,然后除了第一个图像外,角度发生了变化。我需要图像一个接一个地移动,而不改变角度

- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
 {
      UITouch * touch = [touches anyObject];

      CGPoint location = [touch locationInNode:self];

    SKSpriteNode * projectile = [SKSpriteNode spriteNodeWithImageNamed:@"Arrow_Ballon"];
    projectile.position = self.player.position;
    projectile.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:projectile.frame.size];
    projectile.physicsBody.categoryBitMask = projectileCategory;
    projectile.physicsBody.contactTestBitMask = monsterCategory;
    projectile.physicsBody.collisionBitMask = projectileCategory | monsterCategory;
    projectile.physicsBody.usesPreciseCollisionDetection = YES;

    [self runAction:[SKAction playSoundFileNamed:@"arrow.wav" waitForCompletion:NO]];

    CGPoint offset = rwSub(location, projectile.position);


    if (offset.x <= 0) return;

    [self addChild:projectile];

    CGPoint direction = rwNormalize(offset);

    CGPoint shootAmount = rwMult(direction, 1000);

    CGPoint realDest = rwAdd(shootAmount, projectile.position);

    float angle = atan2f (location.y - projectile.position.y, location.x - projectile.position.x) ;

    float velocity = 500.0/1.0;
    float realMoveDuration = self.size.width / velocity;
    SKAction * actionangle = [SKAction rotateByAngle:angle duration:0.0];
    SKAction * actionMove = [SKAction moveTo:realDest duration:realMoveDuration];
    SKAction * actionMoveDone = [SKAction removeFromParent];
    [projectile runAction:[SKAction sequence:@[actionangle,actionMove,actionMoveDone]]]; 
-(void)touchesbeated:(NSSet*)toucheevent:(UIEvent*)event
{
UITouch*touch=[触摸任何对象];
CGPoint位置=[触摸位置Innode:self];
SKSpriteNode*射弹=[SKSpriteNode SPRITENODEWITHIMAGENAME:@“Arrow_Ballon”];
射弹位置=自身玩家位置;
Sprojection.physicsBody=[SKPhysicsBody WithRectangleOfSize:Sprojection.frame.size];
Projection.physicsBody.categoryBitMask=项目类别;
Sproject.physicsBody.contactTestBitMask=怪物类别;
射弹.physicsBody.collisionBitMask=射弹类别|怪物类别;
Projection.physicsBody.usesPreciseCollisionDetection=是;
[自运行操作:[SKAction PlaySoundFileName:@“arrow.wav”waitForCompletion:否];
CGPoint offset=rwSub(位置,射弹位置);

如果(offset.x更改此项会发生什么情况:

 projectile.physicsBody.collisionBitMask = projectileCategory | monsterCategory;


如果更改此选项,会发生什么情况:

 projectile.physicsBody.collisionBitMask = projectileCategory | monsterCategory;