Ich habe versucht, einen Weg zu finden, dies alleine zu beheben, ohne Glück.Probleme mit der Wischgeste im Landscape-Modus
Programmiersprache ist Objective-C und SpriteKit ist die Technologie.
Ich versuche, eine SKNode
mit Swipe-Gesten über den Bildschirm bewegen. (In einer Querformat-App)
Das Problem ist, wenn ich nach links oder anderen Seiten wischen, wird der Knoten die entgegengesetzte Richtung bewegen und verwenden Sie eine andere Methode als es soll. Es sieht so aus, als ob das iPhone denkt, dass es im Hochformat ist. Was soll ich machen?
Hier ist der Code:
Innen .h den Knoten
SKNode *Main_Character;
Innen Deklarieren .m
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
/* Called when a touch begins */
UISwipeGestureRecognizer *oneFingerSwipeLeft = [[UISwipeGestureRecognizer alloc]
initWithTarget:self
action:@selector(SwipedLeft)] ;
[oneFingerSwipeLeft setDirection:UISwipeGestureRecognizerDirectionLeft];
[[self view] addGestureRecognizer:oneFingerSwipeLeft];
UISwipeGestureRecognizer *oneFingerSwipeRight = [[UISwipeGestureRecognizer alloc]
initWithTarget:self
action:@selector(SwipedRight)] ;
[oneFingerSwipeLeft setDirection:UISwipeGestureRecognizerDirectionLeft];
[[self view] addGestureRecognizer:oneFingerSwipeRight];
UISwipeGestureRecognizer *oneFingerSwipeUp = [[UISwipeGestureRecognizer alloc]
initWithTarget:self
action:@selector(SwipedUp)] ;
[oneFingerSwipeLeft setDirection:UISwipeGestureRecognizerDirectionUp];
[[self view] addGestureRecognizer:oneFingerSwipeUp];
UISwipeGestureRecognizer *oneFingerSwipeDown = [[UISwipeGestureRecognizer alloc]
initWithTarget:self
action:@selector(SwipedDown)] ;
[oneFingerSwipeLeft setDirection:UISwipeGestureRecognizerDirectionDown];
[[self view] addGestureRecognizer:oneFingerSwipeDown];
}
// Methods to make the node move when a swipe is called.
-(void)SwipedDown{
SKAction *Move = [SKAction moveByX:0.00 y:-50 duration:2];
[Main_Character runAction:Move];
}
-(void)SwipedUp{
SKAction *Move = [SKAction moveByX:0.00 y:+50 duration:2];
[Main_Character runAction:Move];
}
-(void)SwipedRight{
SKAction *Move = [SKAction moveByX:+50 y:0.00 duration:2];
[Main_Character runAction:Move];
}
-(void)SwipedLeft{
SKAction *Move = [SKAction moveByX:-50 y:0.00 duration:2];
[Main_Character runAction:Move];
}
Kopie einfügen? Ich weiß nicht, was du meinst .. Aber der Code ist von mir geschrieben. Und wie reparierst du "setDirections"? –
Sie kopieren Ihren Code 4 mal, um die 4 Richtungen zu behandeln: E.G. '[oneFingerSwipeLeft setDirection: UISwipeGestureRecognizerDirectionUp];' sollte sein '[oneFingerSwipeUp setDirection: UISwipeGestureRecognizerDirectionUp];' – Knight0fDragon
Dumm mich .. Fühlt sich so doof habe noch nicht bemerkt .. Vielen Dank Herr! –