似乎无法弄清楚这里有什么问题

时间:2014-11-18 01:48:39

标签: ios sprite-kit touchesbegan

之前我使用过这个相同的代码,每次都很完美。但是,我正在尝试使用它来移动桨位精灵沿着位置100的水平路径为y并且它随着触摸的位置更新但是由于某种原因它根本不移动。我无法发现什么是错的。有人可以看看并让我知道吗?

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
    for (UITouch *touch in touches){
        CGPoint location = [touch locationInNode:self];
        CGPoint newPosition = CGPointMake(location.x, 100);

        //stop the paddle from going too far
        if (newPosition.x < self.paddle.size.width/ 2) {
            newPosition.x = self.paddle.size.width/ 2;
        }
        if (newPosition.x > self.size.width - (self.paddle.size.width/ 2)) {
            newPosition.x = self.size.width - (self.paddle.size.width/ 2);
        }
        self.paddle.position = newPosition;
    }
}

-(void) addPlayer:(CGSize)size {
    SKSpriteNode *paddle = [SKSpriteNode spriteNodeWithImageNamed:@"paddle"];
    //resize sprite
    paddle.size = CGSizeMake(125, 31.25);
    //position sprite
    paddle.position = CGPointMake(size.width/2, 100);
    //add physics body to paddle
    paddle.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:paddle.frame.size];
    //change to static so wont be moved by physics
    paddle.physicsBody.dynamic = NO;

    //add sprite to scene
    [self addChild:paddle];
}

-(instancetype)initWithSize:(CGSize)size {
    if (self = [super initWithSize:size]){
        self.backgroundColor = [SKColor colorWithRed:(29.0f/255) green:(29.0f/255) blue:(29.0f/255) alpha:1.0];

        //change gravity
        self.physicsWorld.gravity = CGVectorMake(0, 0);

        //add physics body to scene
        self.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:self.frame];

        [self addPlayer:size];
        [self addBricks:size];
        [self addBall:size];
    }
    return self;
}

0 个答案:

没有答案