Note that there are some explanatory texts on larger screens.

plurals
  1. POAlternative Level Difficulty
    primarykey
    data
    text
    <p>I am in the process of creating a simple game, but have run into some code issues. The way the game works is that there are two balls. One is the enemy and one is the player. Every 5 seconds the game increases the difficulty to the next level. My current code is <a href="http://pastebin.com/XtG0bhNu" rel="nofollow">here</a>, and replicated below:</p> <pre><code>// // ViewController.m // BakerBattle // // Created by Cole Bergmann on 2/6/13. // Copyright (c) 2013 Cole Bergmann. All rights reserved. // #import "ViewController.h" #import "SecondView.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; //(X speed, Y speed) vvv pos = CGPointMake(6,5); [three setHidden:YES]; [two setHidden:YES]; [one setHidden:YES]; [go setHidden:YES]; [level1 setHidden:YES]; [level2 setHidden:YES]; [level3 setHidden:YES]; } -(IBAction)start { [startbutton setHidden:YES]; [logo setHidden:YES]; [instructions setHidden:YES]; [self performSelector:@selector(three) withObject:nil afterDelay:0.5]; } -(void)three { [three setHidden:NO]; [self performSelector:@selector(two) withObject:nil afterDelay:0.5]; } -(void)two { [two setHidden:NO]; [self performSelector:@selector(one) withObject:nil afterDelay:0.5]; } -(void)one { [one setHidden:NO]; [self performSelector:@selector(go) withObject:nil afterDelay:0.5]; } -(void)go { [go setHidden:NO]; [self performSelector:@selector(gamestart) withObject:nil afterDelay:0.5]; } -(void)gamestart { [level1 setHidden:NO]; [three setHidden:YES]; [two setHidden:YES]; [one setHidden:YES]; [go setHidden:YES]; [logo setHidden:YES]; pos = CGPointMake(6,5); randomMain = [NSTimer scheduledTimerWithTimeInterval:(0.03) target:self selector:@selector(onTimer) userInfo:nil repeats:YES]; [self performSelector:@selector(difficulty2) withObject:nil afterDelay:5.0]; } -(void)onTimer { [self checkCollision]; enemy.center = CGPointMake(enemy.center.x+pos.x,enemy.center.y+pos.y); if (enemy.center.x &gt; 320 || enemy.center.x &lt; 0) pos.x = -pos.x; if (enemy.center.y &gt; 480 || enemy.center.y &lt; 0) pos.y = -pos.y; } -(void)checkCollision { if( CGRectIntersectsRect(player.frame,enemy.frame)) { [randomMain invalidate]; [startbutton setHidden:NO]; [logo setHidden:NO]; [three setHidden:YES]; [two setHidden:YES]; [one setHidden:YES]; [go setHidden:YES]; [level1 setHidden:YES]; [level2 setHidden:YES]; [level3 setHidden:YES]; [instructions setHidden:NO]; CGRect frame = [player frame]; frame.origin.x = 137.0f; frame.origin.y = 326.0; [player setFrame:frame]; CGRect frame2 = [enemy frame]; frame2.origin.x = 137.0f; frame2.origin.y = 20.0; [enemy setFrame:frame2]; UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"You Lost!" message:[NSString stringWithFormat:@"Baker Cat stole your dough!"] delegate:nil cancelButtonTitle:@"I want a rematch!" otherButtonTitles:nil]; [alert show]; } } - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { UITouch *myTouch = [[event allTouches] anyObject]; player.center = [myTouch locationInView:self.view]; } //##################################-[DIFFICULTY LEVELS]-##############################################\\ -(void)difficulty2 { [level1 setHidden:YES]; pos = CGPointMake(10,8); [self performSelector:@selector(difficulty3) withObject:nil afterDelay:5.0]; [level2 setHidden:NO]; } -(void)difficulty3 { [level2 setHidden:YES]; pos = CGPointMake(14,10); [self performSelector:@selector(win) withObject:nil afterDelay:5.0]; [level3 setHidden:NO]; } -(void)win { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"You Won!" message:[NSString stringWithFormat:@"You defeated Baker Cat!"] delegate:nil cancelButtonTitle:@"Play Again" otherButtonTitles:nil]; [alert show]; [randomMain invalidate]; [startbutton setHidden:NO]; [logo setHidden:NO]; [instructions setHidden:NO]; [three setHidden:YES]; [two setHidden:YES]; [one setHidden:YES]; [go setHidden:YES]; [level1 setHidden:YES]; [level2 setHidden:YES]; [level3 setHidden:YES]; CGRect frame = [player frame]; frame.origin.x = 137.0f; frame.origin.y = 326.0; [player setFrame:frame]; CGRect frame2 = [enemy frame]; frame2.origin.x = 137.0f; frame2.origin.y = 20.0; [enemy setFrame:frame2]; } @end </code></pre> <p>I was wondering if anyone knew an alternative method to define the levels. Basically, the only thing that the different levels have to do is <code>pos = CGPointMake(10,8);</code> and to change my <code>levelText</code> to the level that the game is on. </p> <p>The problem with what I am using now is that if the player loses, the level does not get reset. For example, if someone dies on level 2, they will get the death message and go to the title screen, but shortly after it displays "level 3" at the top of the screen, and sends a message saying the player won. Any help would be appreciated.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload