xcode 4.2 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;
}
}
}
我不知道为什么会这样