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