【发布时间】:2012-12-23 09:43:00
【问题描述】:
我正在使用 SDL 编写一段 C 代码,该代码应该用黑色和白色像素填充屏幕...它使用 for 循环填充屏幕并使用随机数来确定每个像素是黑色还是白色的。
它开始正常工作一秒钟,但它慢慢开始显示越来越多的白色像素,直到屏幕完全变白并保持这种状态。我不明白我在这里做错了什么。我让它在控制台中打印 num 中的数字,即使屏幕是白色的,它也会继续显示随机的 1 和 0,所以我认为问题存在于 if else 语句或 for 循环中的某个地方。
这是相关代码...
/*outside main program loop*/
17 int x, y, num;
18 srand(time(0));
/*inside main program loop*/
28 for(y=0;y<=480;y++) {
29 for(x=0;x<=640;x++) {
30 num = rand() % 2;
31 if(num == 0) {
32 pixelRGBA(screen, x, y, 255, 255, 255, 255);
33 }
34 else {
35 pixelRGBA(screen, x, y, 0, 0, 0, 0);
36 }
37 }
38 }
39 SDL_Flip(screen);
【问题讨论】:
-
顺便说一句:
srand(time(0));是中世纪。如果你不需要它来获得视觉效果,请不要随机化。