/ / ERROR: očakávaný identifikátor alebo '(' v xcode ios 5 - xcode, odraziť

CHYBA: očakávaný identifikátor alebo „(“ v xcode ios 5 - xcode, odraz

xcode 4.2 ios 5 šablóna pre jedno zobrazenie

Som v tomto formáte ios a týchto nových funkciách v xcode veľmi nový

Tu je celý môj kód:

#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

Mám chybu okolo

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

Neviem, prečo sa to deje

odpovede:

1 pre odpoveď č. 1

Prešiel som váš kód Lindent (malý shell skript okolo indent(1) program s nastaveniami, ktoré sa vývojárom jadra Linuxu páčia; nie je to dokonalé, ale je to dobrý začiatok).

Len čo som to urobil, bolo oveľa jednoduchšie spoznať vašu sériu if (CGRectIntersectsRect(..)) testy vlastne nie sú v ľubovoľná funkcia. Sú na najvyššej úrovni vášho zdroja.

Všetky vyhlásenia a výrazy musia byť v rámci funkcie. (Deklarácie a globálne definície môžu byť na najvyššej úrovni.)

Zistite, ktorá funkcia má túto sériu rutín „vlastniť“, a umiestnite ich do tela funkcie.