Я пытаюсь создать набор случайно расположенных препятствий. Чтобы сделать это, мне нужно нарисовать экземпляр случайной переменной x и случайной переменной y, а затем установить ее положение на эту x и эту переменную y. Чтобы выбрать переменные, я использую следующий код:
srand(time(0));
int i = rand()%4;
int j = rand()%3;
float x = .125+i*.25;
float y = .167+j*.33;
На первый взгляд это может показаться странным, но создает x как одно из четырех чисел, которые я хочу, а y как одно из трех чисел, которые я хочу. Я запустил этот код, и когда я отлаживаю его, в XCode он говорит мне, что x равен NaN, а y также равен NaN. Я знаю, что это означает Not-A-Number, но я не уверен, почему это происходит, потому что я тестировал его в приложении командной строки, например:
srand(time(0));
for (int n = 0; n<10; n++) {
int i = rand()%4;
int j = rand()%3;
float x = .125+i*.25;
float y = .167+j*.33;
cout << x << "," << y << endl;
}
Это дало мне именно то, что я ожидал, набор случайных координат:
0.625,0.497
0.125,0.497
0.875,0.827
0.375,0.497
0.875,0.167
0.625,0.497
0.875,0.827
0.875,0.827
0.125,0.167
0.625,0.827
Почему это? Я использовал этот код в инструменте командной строки, чтобы проверить его, увидел, что он работает, а затем попытался использовать его в контексте игры, и отладчик возвращает NaN. Что мне не хватает в игре, которую я имею в командной строке?
Задача ещё не решена.