Я пытался выяснить, как это исправить самостоятельно, без везения.Проблемы с жестом разворота в ландшафтном режиме
Язык программирования Objective-C и SpriteKit - это технология.
Я пытаюсь сделать SKNode
перемещение по экрану с помощью жестов. (В приложении с ландшафтным режимом)
Проблема в том, что когда я прокручиваю левую или любую другую сторону, узел будет перемещаться в противоположном направлении и использовать другой метод, чем предполагалось. Похоже, iPhone думает, что он в портретном режиме. Что мне делать?
Вот код:
Внутри .h Декларирование узел
SKNode *Main_Character;
Inside .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];
}
Скопировать пасту? Не знаю, что вы имеете в виду. Но код написан мной. А также, как вы исправляете «setDirections»? –
вы копируете/вставляете свой код 4 раза, чтобы обрабатывать 4 направления: E.G. '[oneFingerSwipeLeft setDirection: UISwipeGestureRecognizerDirectionUp];' должно быть '[oneFingerSwipeUp setDirection: UISwipeGestureRecognizerDirectionUp];' – Knight0fDragon
Глупо мне .. Чувствуешь себя настолько глупо, что не заметил этого еще .. Большое вам спасибо! –