2

我如何获得SKNode前进?

我已经能够让节点在一个固定的方向上移动,[SKAction moveByX:y:duration:]但我希望它在一个相对于它所面对的方向的方向上移动。

我希望让每个节点转 45 度,然后“走”向前 50 像素。

看起来很简单,我只是找不到它。

4

2 回答 2

2

这将旋转,然后朝向您点击的位置

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

for (UITouch *touch in touches) {

    for (UITouch *touch in touches) {

        CGPoint location = [touch locationInNode:self];

        CGPoint diff = CGPointMake(location.x - _myPlayer.position.x, location.y - _myPlayer.position.y);

        CGFloat angleRadians = atan2f(diff.y, diff.x);

        [_myPlayer runAction:[SKAction sequence:@[
                                [SKAction rotateToAngle:angleRadians duration:1.0],
                                [SKAction moveByX:diff.x y:diff.y duration:3.0]
                                ]]];
    }
}
}
于 2013-10-04T03:12:46.493 回答
0

我也想过这个问题。我想在继续之前制作一个似乎正在转动的节点。我考虑过这样做的一种方法是让一个子节点附加到在场景中移动的节点的“最前”部分。然后我会计算从子节点抽头的距离。那有意义吗?本质上,我可以从场景中的任何位置点击计算节点的前部。

于 2013-10-11T17:16:39.060 回答