どうすればSKNode
前に進むことができますか?
を使用してノードを固定方向に移動させることができましたが[SKAction moveByX:y:duration:]
、向いている方向に対して相対的な方向に移動させたいです。
各ノードを 45 度回転させてから、50 ピクセル前方に「歩く」ようにしています。
それは私がそれを見つけることができないほど簡単に思えます。
どうすればSKNode
前に進むことができますか?
を使用してノードを固定方向に移動させることができましたが[SKAction moveByX:y:duration:]
、向いている方向に対して相対的な方向に移動させたいです。
各ノードを 45 度回転させてから、50 ピクセル前方に「歩く」ようにしています。
それは私がそれを見つけることができないほど簡単に思えます。
これが回転し、タップした方向へ
-(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]
]]];
}
}
}
私もこれについて考えたことがあります。先に進む前に、回転しているように見えるノードを作成したいと考えています。私が考えた方法の 1 つは、子ノードを、シーン内で移動しているノードの「最も前方」の部分に接続することです。次に、子ノードからのタップの距離を計算します。それは理にかなっていますか?基本的に、シーンのどこをタップしても、ノードの前面を計算できます。