objective c - How can i repeat a code code after a delay -


i'm trying make game have fly through cave, , pick object gives points. want bonus image repeat several times while playing. have tried using code tell me hide object, can't see anymore, can still pick while it's hidden...

i thought repeating "corona", how?

please me :)

here .m file:

#import "viewcontroller.h"  @interface viewcontroller ()  @end  @implementation viewcontroller   -(void)collision{   if (cgrectintersectsrect(heli.frame, obstacle.frame)) {     [self endgame]; }  if (cgrectintersectsrect(heli.frame, obstacle2.frame)) {     [self endgame]; }  if (cgrectintersectsrect(heli.frame, bottom1.frame)) {     [self endgame]; }  if (cgrectintersectsrect(heli.frame, top1.frame)) {     [self endgame]; }      }   -(void)endgame{   if (scorenumber > highscore) {     highscore = scorenumber;     [[nsuserdefaults standarduserdefaults] setinteger:highscore     forkey:@"highscoresaved"]; }   heli.hidden = yes; [timer invalidate]; [scorer invalidate];   [self performselector:@selector(newgame) withobject: nil afterdelay:2];  }   -(void)newgame{ if([uidevice currentdevice].userinterfaceidiom == uiuserinterfaceidiomphone) {     bottom1.hidden = yes;     top1.hidden = yes;     obstacle.hidden = yes;     obstacle2.hidden = yes;     corona.hidden = yes;       intro1.hidden = no;     intro2.hidden = no;     intro3.hidden = no;      heli.hidden = no;     heli.center = cgpointmake(88, 286);     heli.image = [uiimage imagenamed:@"buss til app.png"];      start = yes;     scorenumber = 0;     score.text = [nsstring stringwithformat:@"score: 0"];     intro3.text = [nsstring stringwithformat:@"highscore: %i", highscore];   }  else {     //ipad     bottom1.hidden = yes;     top1.hidden = yes;     obstacle.hidden = yes;     obstacle2.hidden = yes;     corona.hidden = yes;      intro1.hidden = no;     intro2.hidden = no;     intro3.hidden = no;      heli.hidden = no;     heli.center = cgpointmake(153, 516);     heli.image = [uiimage imagenamed:@"buss til app.png"];      start = yes;     scorenumber = 0;     score.text = [nsstring stringwithformat:@"score: 0"];     intro3.text = [nsstring stringwithformat:@"highscore: %i", highscore]; } }       -(void)helimove{ if([uidevice currentdevice].userinterfaceidiom == uiuserinterfaceidiomphone) {      [self collision];      heli.center = cgpointmake(heli.center.x, heli.center.y + y);      obstacle.center = cgpointmake(obstacle.center.x -4, obstacle.center.y);     obstacle2.center = cgpointmake(obstacle2.center.x -4, obstacle2.center.y);     bottom1.center = cgpointmake(bottom1.center.x -4, bottom1.center.y -0);     top1.center = cgpointmake(top1.center.x -4, top1.center.y -0);     corona.center = cgpointmake(corona.center.x -4, corona.center.y );        if (obstacle.center.x < -90) {         randomposition = arc4random() %200;         randomposition = randomposition + 200;         obstacle.center = cgpointmake(400, randomposition);     }       if (obstacle2.center.x < 0) {         randomposition = arc4random() %165;         randomposition = randomposition + 600;         obstacle.center = cgpointmake(300, randomposition);     }       if (top1.center.x <-95) {         randomposition = arc4random() %80;         top1.center = cgpointmake(410, 17);         randomposition = randomposition + 495;         bottom1.center = cgpointmake(420, 540);     }      if (corona.center.x <-90) {         corona.center = cgpointmake(2100, 325);     }    }  else {     //ipad     [self collision];      heli.center = cgpointmake(heli.center.x, heli.center.y + y);      obstacle.center = cgpointmake(obstacle.center.x -10, obstacle.center.y);     obstacle2.center = cgpointmake(obstacle2.center.x -10, obstacle2.center.y);     bottom1.center = cgpointmake(bottom1.center.x -10, bottom1.center.y -0);     top1.center = cgpointmake(top1.center.x -10, top1.center.y -0);     corona.center = cgpointmake(corona.center.x -10, corona.center.y );       if (obstacle.center.x < -90) {         randomposition = arc4random() %300;         randomposition = randomposition + 400;         obstacle.center = cgpointmake(900, randomposition);     }      }       if (obstacle2.center.x < 0) {         randomposition = arc4random() %300;         randomposition = randomposition + 600;         obstacle.center = cgpointmake(678, randomposition);     }       if (top1.center.x <-100) {         randomposition = arc4random() %80;         top1.center = cgpointmake(400, 30);         randomposition = randomposition + 495;         bottom1.center = cgpointmake(400, 990);     }        if (corona.center.x < -0) {         corona.center = cgpointmake(900, 325);     }    }     -(void)scoring{ scorenumber = scorenumber + 1; score.text = [nsstring stringwithformat:@"score: %i", scorenumber];   if (cgrectintersectsrect(heli.frame, corona.frame)) {     scorenumber += 20;     corona.hidden = yes;  } }           -(void)touchesbegan:(nsset *)touches withevent:(uievent *)event{    if (start == yes) {      intro1.hidden = yes;     intro2.hidden = yes;     intro3.hidden = yes;      timer = [nstimer scheduledtimerwithtimeinterval:0.02 target:self  selector:@selector(helimove) userinfo:nil repeats:yes];      scorer = [nstimer scheduledtimerwithtimeinterval:0.1 target:self    selector:@selector(scoring) userinfo:nil repeats:yes];       start = no;      bottom1.hidden = no;     top1.hidden = no;     obstacle.hidden = no;     obstacle2.hidden = no;     obstacle3.hidden = no;     obstacle4.hidden = no;     obstacle5.hidden = no;     obstacle6.hidden = no;     obstacle7.hidden = no;     obstacle8.hidden = no;     obstacle9.hidden = no;     corona.hidden = no;       if([uidevice currentdevice].userinterfaceidiom == uiuserinterfaceidiomphone)     {           randomposition = arc4random() %150;         randomposition = randomposition + 397;         obstacle.center = cgpointmake(570, randomposition);           randomposition = arc4random() %75;         randomposition = randomposition + 259;         obstacle2.center = cgpointmake(855, randomposition);           corona.center = cgpointmake(1400, 400);         }      else{         //ipad         randomposition = arc4random() %400;         randomposition = randomposition + 1300;         obstacle.center = cgpointmake(570, randomposition);          randomposition = arc4random() %75;         randomposition = randomposition + 259;         obstacle2.center = cgpointmake(855, randomposition);           randomposition = arc4random() %55;         corona.center = cgpointmake(900, 470);      } }   if([uidevice currentdevice].userinterfaceidiom == uiuserinterfaceidiomphone) {     y = -7;     heli.image = [uiimage imagenamed:@"buss til app.png"]; }  else{     //ipad     y = -12;     heli.image = [uiimage imagenamed:@"buss til app.png"];   } }   -(void)touchesended:(nsset *)touches withevent:(uievent *)event{  if([uidevice currentdevice].userinterfaceidiom == uiuserinterfaceidiomphone) {     y = 7;     heli.image = [uiimage imagenamed:@"buss til app.png"]; }  else{     //ipad     y = 12;     heli.image = [uiimage imagenamed:@"buss til app.png"];  }  }       - (void)viewdidload {  // highscore prefs. highscore = [[[nsuserdefaults standarduserdefaults] objectforkey:@"highscoresaved"]      intvalue ]; intro3.text = [nsstring stringwithformat:@"highscore: %i", highscore];    start = yes; bottom1.hidden = yes; top1.hidden = yes; obstacle.hidden = yes; obstacle2.hidden = yes; obstacle3.hidden = yes; obstacle4.hidden = yes; obstacle5.hidden = yes; obstacle6.hidden = yes; obstacle7.hidden = yes; obstacle8.hidden = yes; obstacle9.hidden = yes; corona.hidden = yes;     [super viewdidload]; // additional setup after loading view, typically nib. }  - (void)didreceivememorywarning { [super didreceivememorywarning]; // dispose of resources can recreated. }  @end 

to repeat code after delay can use nstimer.
create viewdidload method , place nstimer initialize code there:

-(void)viewdidload {     [super viewdidload];     //then initialize timer     nstimer *mytimer=[nstimer scheduledtimerwithtimeinterval:yourdelay     target:self selector:@selector(yourselector:) userinfo:nil repeats:yes]; } 

what need edit is:
yourdelay - delay between timer firings, in seconds
repeats:yes - defines whether timer repeats or not
@selector(yourselector:) - method place code

then

-(void)yourselector:(nstimer*)timer { //your code here } 

Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

javascript - jQuery show full size image on click -