Ios 如何设置不同游戏模式的计时器?
我正在为班级开发一个游戏,当按下一个按钮时,计时器就会运行Ios 如何设置不同游戏模式的计时器?,ios,timer,xcode6,Ios,Timer,Xcode6,我正在为班级开发一个游戏,当按下一个按钮时,计时器就会运行 -(void)setTimer{ self->mTimer = [NSTimer scheduledTimerWithTimeInterval:5.0 target:self selector:@selector(buttonNotPushed) userInfo: nil repeats:NO]; } -(void)resetTimer{ [self->mTimer invalidate]; self->mTi
-(void)setTimer{
self->mTimer = [NSTimer scheduledTimerWithTimeInterval:5.0 target:self selector:@selector(buttonNotPushed) userInfo: nil repeats:NO];
}
-(void)resetTimer{
[self->mTimer invalidate];
self->mTimer = nil;
下面是如何使用计时器代码的一个片段
- (IBAction)yellowDot1:(id)sender {
if ([_labelColor.text isEqualToString:@"Yellow"]) {
[ self Scoring];
[self label];
[self resetTimer];
[self setTimer];
}
else ([self GameOver]);
}
- (IBAction)redDot1:(id)sender {
if ([_labelColor.text isEqualToString:@"Red"]) {
[ self Scoring];
[self label];
[self resetTimer];
[self setTimer];
}
else ([self GameOver]);
}
游戏中出现了一个播放按钮,可以切换到下一个屏幕。目前是5秒,我想创建一个“困难”模式,在主屏幕上,用户点击一个“困难”按钮,游戏的计时器运行2秒。现在,我正在考虑复制我的故事板和视图控制器,这样我就可以让计时器有一个不同的间隔。对于一个困难的模式,是否可以用一种较短的方式通过代码实现?只需为此声明一个全局变量。使用一个持有模式的类(可能是单例),并使用
-(float)getGameDuration代码>方法
让我们说
// GameHandler.h
static GameHandler *sharedInstance = nil;
@interface GameHandler : NSObject
{
GameMode *mode;
}
typedef enum{
GAMEMODE_EASY = 0,
GAMEMODE_NORMAL,
GAMEMODE_HARD
} GameMode;
-(float) getGameDuration;
实施
// GameHandler.m
+ (GameHandler *)sharedInstance // implement singleton
{};
-(float) getGameDuration
{
switch(mode)
{
case GAMEMODE_EASY:
return 10.f;
case GAMEMODE_NORMAL:
return 5.f;
case GAMEMODE_HARD:
return 2.f;
}
return 5.f;
}
// your other classes
float gameDurration = [[GameHandler sharedInstance] getGameDuration];
self->mTimer = [NSTimer scheduledTimerWithTimeInterval:gameDurration
target:self
selector:@selector(buttonNotPushed)
userInfo:nil
repeats:NO];
else([self GameOver])代码>是非常奇怪的样式…@StephenRao有什么评论吗?它能帮你吗,糟糕的解决方案,还有其他问题吗?