私はObjectiveCとXcodeを使用して非常にシンプルなテキストゲームを開発してきました。ほぼ完了しましたが、問題が発生しています。scanfメソッドはループを停止し、コンピューターで残りのループを実行する必要があるときにユーザー入力を要求します。私が思いついた解決策は、2つのwhileループを同時に実行することでした。時間。1つは論理ループで、もう1つはユーザー入力のループです。
私は自分の研究を行っていますが、スレッドを使用することが道のりのようですが、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);
}
}