0
我正在創建一個簡單的遊戲,但遇到了一些代碼問題。遊戲的工作方式是有兩個球。一個是敵人,一個是玩家。每5秒遊戲就會將難度提高到一個新的水平。我當前的代碼是here,以下複製:替代等級難度
//
// 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 > 320 || enemy.center.x < 0)
pos.x = -pos.x;
if (enemy.center.y > 480 || enemy.center.y < 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
,如果有人知道的另一種方法來定義的水平我想知道。基本上,不同級別必須做的唯一事情是pos = CGPointMake(10,8);
並將我的levelText
更改爲遊戲所在的級別。
我現在使用的問題是,如果玩家輸了,水平不會被重置。例如,如果有人死於2級,他們會得到死亡信息並轉到標題屏幕,但在屏幕頂部顯示「3級」後不久,併發送消息說明玩家贏了。任何幫助,將不勝感激。
謝謝!工作很棒! – user1542348
不知道您是否與我說話,但如果是這樣,您可以讓其他人知道答案可以解決您的問題,或通過點擊旁邊的複選標記來回答您的問題。 –