Анимация игры "Drag 'n' Drop" - PullRequest
0 голосов
/ 24 марта 2012

Я довольно новичок в Objective-C и собираюсь создать довольно простую головоломку.В настоящее время я просто рассматриваю создание головоломки из 4 частей как способ изучения метода.

На данный момент у меня есть 4 фрагмента вокруг экрана, которые при перетаскивании в определенное место на экране привязываются к этому месту.

Моя проблема - попытаться оживить прикосновения.Я хочу, чтобы изображение немного расширялось, но у меня проблемы с синтаксисом.Я посмотрел на пример MoveMe, который предоставляет Apple, но он не помогает мне в этой ситуации.Ниже приведен код.Буду признателен за любую помощь в этом.Спасибо.

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [touches anyObject];
    //location of current touch
    CGPoint location = [touch locationInView:self.view];
    if ([touch view] == image1) {
        image1.center = location;
        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationDuration:0.5];
        image1.transform = CGAffineTransformMakeScale(1.5, 1.5);  
        [UIView commitAnimations];    
    } else if ([touch view] == image2) {
        image2.center = location;
        animateFirstTouch:image2;
    } else if ([touch view] == image3) {
        image3.center = location;
        image3.transform = CGAffineTransformMakeScale(1.5, 1.5);
    } else if ([touch view] == image4) {
        image4.center = location;
        image4.transform = CGAffineTransformMakeScale(1.5, 1.5);
    }

}

-(void) animateFirstTouch:(UIView *)image {
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.5];
    self.view.transform = CGAffineTransformMakeScale(1.5, 1.5);  
    [UIView commitAnimations];  
}

Код для image1 работает, и изображение масштабируется за 0,5 секунды.

Код для image2 вызывает ошибку: результат выражения не используется для animateFirstTouch: image2.

Код для image3 и image4 масштабирует изображения без анимации.

1 Ответ

1 голос
/ 24 марта 2012

См. Ответ Kuldeep по этой ссылке.Я думаю, что это будет работать для вас:

iPhone / iOS: Как реализовать перетаскивание для подпредставлений Scrollview?

Также в качестве альтернативы см. iPhone ответ по этой ссылке:

iPhone App: реализация перетаскивания изображений в UIView

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [touches anyObject];
    //location of current touch
    CGPoint location = [touch locationInView:self.view];
    if ([touch view] == image1) {
       [self animateFirstTouch:image1 withLocation:location];
    } else if ([touch view] == image2) {
       [self animateFirstTouch:image2 withLocation:location];
    } else if ([touch view] == image3) {
       [self animateFirstTouch:image3 withLocation:location];
    } else if ([touch view] == image4) {
        [self animateFirstTouch:image4 withLocation:location];
    }

}

-(void) animateFirstTouch:(UIImageView *)image withLocation:(CGPoint)location {
        image.center = location;
        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationDuration:0.5];
        image.transform = CGAffineTransformMakeScale(1.5, 1.5);  
        [UIView commitAnimations];   
}

Надеюсь, это поможет вам.

Свяжитесь со мной, если вам нужна дополнительная помощь.

...