user5127227
user5127227

Reputation:

multiple touch in xcode iOS objective C

I have a character in my game that I can move left/right and jump. I am using touchesBegan to do that. But when I move left ( keep touching the screen -> makes character faster and faster ), it only jumps when i release it. I would like to jump and move left at the same time.

Here is some of my code :

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
CGPoint point = [touch locationInView:self.view];


if((point.x < moveLeftButton.frame.size.width))
{

    if((point.y > JumpButton.frame.size.height))
    {
        leftSide = YES;
        sanchez.image = [UIImage imageNamed:@"characterL2"];
    }

}


if((point.x) > (backGround.frame.size.width - moveRightButton.frame.size.width))
{

    if((point.y > JumpButton.frame.size.height))
    {
        rightSide = YES;
        sanchez.image = [UIImage imageNamed:@"characterR2"];
    }

}

if( notJumping && (point.y < JumpButton.frame.size.height) && (sanchezStopAll == NO))
{
    AudioServicesPlaySystemSound(jump);
    sanchezJumping = 5.5;
    notJumping = NO;

}

[self animation];

}

I am not using buttonPressed because they are hidden and I think you can't click hidden buttons.

This is how it looks like if its not hidden:

view Thanks for any Help.

Upvotes: 0

Views: 746

Answers (1)

ChenYilong
ChenYilong

Reputation: 8673

You'll only get a single touch by default unless you set multipleTouchEnabled = YES. Then your code should work as expected.

For example:

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.view.multipleTouchEnabled = YES;
}

Upvotes: 1

Related Questions