2011-12-18 45 views
1

的Xcode 4.2的iOS 5單一視圖模板錯誤:預期標識符或「(」在Xcode的iOS 5

我很新的ios格式,並在Xcode這些新功能

這裏是我的所有代碼:

#import "SimpleGame2ViewController.h" 

#define kStateRunning 1 
#define kStateGameOver 2 

#define kLeftDown 1 
#define kRightDown 2 
#define kTouchesEnded 3 

#define kPlatformWidth 55 
#define kPlatformHeight 16 

#define kMaxBallSpeed 10 

#define kJumpPower 9 

#define kGravity 0.195 

@ implementation SimpleGame2ViewController @ synthesize ball; 
@synthesize platform1; 
@synthesize platform2; 
@synthesize platform3; 
@synthesize platform4; 
@synthesize platform5; 
@synthesize bg; 
@synthesize gameState; 
@synthesize ballVelocity, gravity; 
@synthesize touchState; 

-(void)didReceiveMemoryWarning { 
    [super didReceiveMemoryWarning]; 
    // Release any cached data, images, etc that aren't in use. 
} 

#pragma mark - View lifecycle 

-(void)viewDidLoad { 
    [super viewDidLoad]; 
    gameState = kStateRunning; 
    ballVelocity = CGPointMake(0, 0); 
    gravity = CGPointMake(0, kGravity); 

    [NSTimer scheduledTimerWithTimeInterval: 1.0/60 
     target: self 
     selector: @selector(gameloop) 
     userInfo: nil 
     repeats:YES]; 

    // Do any additional setup after loading the view, typically from a nib. 
} 

-(void)gameloop { 
    if (gameState == kStateRunning) { 
     [self gameStatePlayNormal]; 
    } else if (gameState == kStateGameOver) { 
     ballVelocity.x = 0; 
     ballVelocity.y = 0; 

     ball.center = CGPointMake(152 + 16, 326 + 16); 
     platform1.center = 
      CGPointMake(129 + (kPlatformWidth/2), 
       414 + (kPlatformHeight/2)); 
     platform2.center = 
      CGPointMake(34 + (kPlatformWidth/2), 
       316 + (kPlatformHeight/2)); 
     platform3.center = 
      CGPointMake(192 + (kPlatformWidth/2), 
       261 + (kPlatformHeight/2)); 
     platform4.center = 
      CGPointMake(146 + (kPlatformWidth/2), 
       179 + (kPlatformHeight/2)); 
     platform5.center = 
      CGPointMake(8 + (kPlatformWidth/2), 
       81 + (kPlatformHeight/2)); 
    } 
} 

-(void)gameStatePlayNormal { 
    ballVelocity.y += gravity.y; 

    if (touchState == kLeftDown) { 
     ballVelocity.x -= 0.2; 
    } 
    if (touchState == kRightDown) { 
     ballVelocity.x += 0.2; 
    } 
    if (ballVelocity.x > kMaxBallSpeed) { 
     ballVelocity.x = kMaxBallSpeed; 
    } 
    if (ballVelocity.x < -kMaxBallSpeed) { 
     ballVelocity.x = -kMaxBallSpeed; 
    } 

    if (ball.center.x > self.view.bounds.size.width) { 
     ball.center = CGPointMake(0, ball.center.y); 
    } 

    if (ball.center.x < 0) { 
     ball.center = 
      CGPointMake(self.view.bounds.size.width, ball.center.y); 
    } 

    ball.center = 
     CGPointMake(ball.center.x + ballVelocity.x, 
      ball.center.y + ballVelocity.y); 

    if (ball.center.y > self.view.bounds.size.height) { 
     gameState = kStateGameOver; 

    } 
} 

// Check for a bounce 

if (CGRectIntersectsRect(ball.frame, platform1.frame)) { 
    if (ball.center.y + 8 < platform1.center.y) { 
     if (ballVelocity.y > 0) { 
      ballVelocity.y = -kJumpPower; 
     } 
    } 
} 

if (CGRectIntersectsRect(ball.frame, platform2.frame)) { 
    if (ball.center.y + 8 < platform2.center.y) { 
     if (ballVelocity.y > 0) { 
      ballVelocity.y = -kJumpPower; 
     } 
    } 
} 

if (CGRectIntersectsRect(ball.frame, platform3.frame)) { 
    if (ball.center.y + 8 < platform3.center.y) { 
     if (ballVelocity.y > 0) { 
      ballVelocity.y = -kJumpPower; 
     } 
    } 
} 

if (CGRectIntersectsRect(ball.frame, platform4.frame)) { 
    if (ball.center.y + 8 < platform4.center.y) { 
     if (ballVelocity.y > 0) { 
      ballVelocity.y = -kJumpPower; 
     } 
    } 
} 

if (CGRectIntersectsRect(ball.frame, platform5.frame)) { 
    if (ball.center.y + 8 < platform5.center.y) { 
     if (ballVelocity.y > 0) { 
      ballVelocity.y = -kJumpPower; 
     } 
    } 
} 

-(void)touchesBegan:(NSSet *) 
touches withEvent:(UIEvent *) event 
{ 
    if (gameState == kStateRunning) { 
     UITouch *touch =[[event allTouches] anyObject]; 
     CGPoint location =[touch locationInView:touch.view]; 
     if (location.x < (self.view.bounds.size.width/2)) { 
      touchState = kLeftDown; 
      ballVelocity.x -= 0.2; 
     } else { 
      touchState = kRightDown; 
      ballVelocity.x += 0.2; 
     } 

    } 
} 

-(void)touchesEnded:(NSSet *) 
touches withEvent:(UIEvent *) event 
{ 
    touchState = kTouchesEnded; 
} 

-(void)viewDidUnload { 
    [self setBall:nil]; 
    [self setPlatform1:nil]; 
    [self setPlatform2:nil]; 
    [self setPlatform3:nil]; 
    [self setPlatform4:nil]; 
    [self setPlatform5:nil]; 
    [self setBg:nil]; 
    [super viewDidUnload]; 
    // Release any retained subviews of the main view. 
    // e.g. self.myOutlet = nil; 
} 

-(void)viewWillAppear:(BOOL) animated { 
    [super viewWillAppear:animated]; 
} 

-(void)viewDidAppear:(BOOL) animated { 
    [super viewDidAppear:animated]; 
} 

-(void)viewWillDisappear:(BOOL) animated { 
    [super viewWillDisappear:animated]; 
} 

-(void)viewDidDisappear:(BOOL) animated { 
    [super viewDidDisappear:animated]; 
} 

-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation 
{ 
    // Return YES for supported orientations 
    return (interfaceOrientation != 
     UIInterfaceOrientationPortraitUpsideDown); 
} 

@end 

我身邊有

if (CGRectIntersectsRect(ball.frame, platform1.frame)) { 
    if (ball.center.y + 8 < platform1.center.y) { 
     if (ballVelocity.y > 0) { 
      ballVelocity.y = -kJumpPower; 
     } 
    } 
} 

錯誤我不知道爲什麼會這樣

回答

1

我已經通過Lindent(一個圍繞着indent(1)程序的小型shell腳本運行你的代碼,Linux內核開發者喜歡這些設置;這並不完美,但這是一個好的開始)。

一旦我做到了這一點,很容易發現您的if (CGRectIntersectsRect(..))系列測試實際上並非中的任何功能。他們處於您的來源的頂層。

所有的語句和表達式必須在一個函數內。 (聲明和全局定義可以在頂層。)

找出哪個函數應該「擁有」該系列例程並將它們放置在函數體中。

+0

thx這幫了很多 – mattblessed 2011-12-18 17:07:21