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

私もこれについて考えたことがあります。先に進む前に、回転しているように見えるノードを作成したいと考えています。私が考えた方法の 1 つは、子ノードを、シーン内で移動しているノードの「最も前方」の部分に接続することです。次に、子ノードからのタップの距離を計算します。それは理にかなっていますか?基本的に、シーンのどこをタップしても、ノードの前面を計算できます。

于 2013-10-11T17:16:39.060 に答える