我正在尝试创建一组随机放置的障碍物。为此,我需要绘制一个随机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。我在命令行游戏中缺少什么?