为什么这个IBAction没有工作? iOS游戏

时间:2014-02-27 05:36:09

标签: ios objective-c

我有2个IBAction - 开始游戏,重播我正在研究的IOS游戏。 ViewDidLoad加载了很多隐藏的内容。开始游戏会显示ball.hidden = NO;和其他内容,以及NSTimer开始和下移等。当用户在游戏中死亡时,gameoverscreen.hidden = NO;并且它有几个按钮来吧。我添加了一个重播按钮,我为它做了一个新的插座。我尝试开始IBAction并在重播IBAction中重写相同的代码,但它会自动返回到游戏结束屏幕。我还尝试在重播gameoverscreen.hidden = YES;中再次写出IBAction,但它仍然会这样做。这些冲突有些怎么样?任何原因,为什么会发生这种情况。有没有办法重新加载一个屏幕....即,当在游戏画面点击重播时,我可以写一些代码来重新加载我的屏幕?

-(IBAction)startGame:(id)sender
{
    start.hidden = YES; //hides button
    stimage.hidden = YES; //hides image
    upMovement = 4;
    movement = [NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(moving) userInfo:nil repeats:YES];
    //when we start game, start timer to run method every 0.05 seconds

    platform1.hidden = NO;
    platform2.hidden = NO;
    ball1.hidden = NO;
    ball2.hidden = NO;

    advertisement.hidden = YES;


    //1
    RandomPosition = arc4random()%248; //48 different possibilities the random number generator can generate
    RandomPosition = RandomPosition + 36; //generate a value between 36 and 284 try 30
    platform1.center = CGPointMake(RandomPosition, 530);
}

2 个答案:

答案 0 :(得分:0)

你应该能够简单地跑步     [self viewDidLoad]; 这应该再次运行ViewDidLoad函数。如果您使用“startGame”开始整个游戏,请运行:     [self startGame:(yourSendingButton)];

答案 1 :(得分:0)

很难说从提供的代码中发生了什么。因此,我只能做出一个疯狂的猜测:
我假设重播按钮实际执行了IBAction,并且您的gameover视图确实已隐藏,但再次“自动”显示。
我的猜测是你的方法moving是由计时器重复调用的。可能是这种方法认识到使用过程已经死亡,并且再次可以看到游戏过程 那么,你是否正确地重置了用户的生活状态,并且你是否停止了计时器?