我一直在使用 Objective C 和 Xcode 开发一个非常简单的文本游戏。它几乎完成了,但我遇到了一个问题,scanf方法停止循环并要求用户输入,而我需要计算机运行循环的其余部分,我想出的解决方案是同时运行两个 while 循环时间,一个是逻辑循环,另一个是用户输入循环。
我一直在做我的研究,看起来使用线程是要走的路,我只是还没有找到一个教程可以将它分解为Objective C中的n00b(我在java中很不错,我只是从未使用过线程)。如果有人可以解释它们或将我链接到一个非常分解的教程,那就太好了。或者,如果有人有其他想法,我对其他任何事情都持开放态度。
必要的代码(我遇到问题的scanf在线上有星号):
while(running != 0)
{
if(gameState == 1)
{
if(timeToGenerateNum == true)
{
while(randNumber < 10000000)
{
randNumber = arc4random() % 100000000;
}
NSLog(@"%i", randNumber);
timeToGenerateNum = false;
}
else
{
while(time <= 2500)
{
NSLog(@"Testing");
time++;
******************scanf("%i", &userNum);************************
if(userNum == randNumber)
{
score += time;
time = 0;
timeToGenerateNum = true;
}
}
NSLog(@"Game Over! Your score was %i!", score);
running = 0;
}
}
else if(gameState == 2)
{
NSLog(@"To play, simply type in the number that appears on the screen.");
NSLog(@"But be careful, you only have a short amount of time before GAME OVER!");
NSLog(@"The quicker you type in the number the more score you get!");
NSLog(@"Are you ready to start, if so type '1' and press enter!");
scanf("%i", &gameState);
}
}