Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  1 1148
Driver og lager et spill, type "Pong" for 2 spillere på iPad.

Jeg mangler en vesentlig detalj: Bare en av "keeperne" kan flyttes om gangen. Dvs, mens den ene flytter seg fint, kan den andre "hakke seg bortover" ved at man trykker på den gjentatte ganger. Og vise verca.

Jeg har googlet og lest tutorials og sett videoer mange steder, men ingen ting ser ut til å virke når jeg putter det inn i appen min.

Her er koden som er aktuell for at "keeperne" som skal beveges:

Kode

- (void) viewDidLoad:{
self.view.multipleTouchEnabled = YES;
}
resten av .m

Kode

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [[event allTouches] anyObject];
    CGPoint firstTouch = [touch locationInView:self.view];
    
    if ([touch view] == keeper){
        keeper.center = firstTouch;
    }
    else if ([touch view] == keeper2){
        keeper2.center = firstTouch;
    }
}

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
    [self touchesBegan:touches withEvent:event];
}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [touches anyObject];
    currentTouch = [touch locationInView:self.view];
    toMove.center = currentTouch;
    toMove=nil;
}
.h

Kode

@interface PongViewController : UIViewController{
CGPoint currentTouch;
UIView *toMove;
IBOutlet UIImageView *keeper;
IBOutlet UIImageView *keeper2;
}
@property(nonatomic,retain)IBOutlet UIImageView *keeper;
@property(nonatomic,retain)IBOutlet UIImageView *keeper2;
Andre opplysninger som kanskje er relevant:

Jeg har deaktivert ARC.
Jeg lager for iOS 6 og 7.
Jeg bruker ikke Autolayout.
Jeg har huket av for "User Interaction Enabled" og "Multible Touch" for begge keeperne.

Blir svært glad hvis noen forstår hva jeg gjør feil - jeg har holdt på et par kvelder nå med akkurat denne detaljen.
Nei vel. Da måtte jeg finne ut av det selv:

Jeg endret "touchesBegan" til følgende:

Kode

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    for (UITouch *touch in [[event allTouches] allObjects])
    {
          CGPoint firstTouch = [touch locationInView:self.view];
          if ([touch view] == keeper){
          keeper.center = firstTouch;
    }
    else if ([touch view] == keeper2){
        keeper2.center = firstTouch;
    }}}
Nå fungerer multi-touch perfekt.