【发布时间】:2011-05-30 17:51:01
【问题描述】:
我有 22 张图片... 11 张是(rightwall1、rightwall2、rightwall3 等),另外 11 张是(leftwall1、leftwall2、leftwall3 等)
我通过将它们的 y 值设置为前一堵墙的 y 值加上墙的高度(所有墙的高度相同)来将它们放在另一个之上。
这很好用!
现在,我尝试使用 arc4random 设置 x 值,以便它们会在一定范围内到处跳跃(对于左墙:(-35 到 15)和对于右墙:(330 到 405) )...
右墙完美运行,但左墙,其中一些可以正常工作,但大多数不会显示在屏幕上。
我手动将 x 值 1 设置为 -45,它显示在屏幕上,低于 arc4random 允许的值。
我能想到的唯一问题是我为左墙减去错误?
这是设置墙壁位置的代码,整个项目中我还没有其他代码。
-(void)awakeFromNib {
rightWall1.center = CGPointMake( ((arc4random()%75)+330), (460-((rightWall1.frame.size.height)/2)) );//460 = bottom of screen
rightWall2.center = CGPointMake( ((arc4random()%75)+330), ((rightWall1.center.y)-(rightWall2.frame.size.height)) );
rightWall3.center = CGPointMake( ((arc4random()%75)+330), ((rightWall2.center.y)-(rightWall3.frame.size.height)) );
rightWall4.center = CGPointMake( ((arc4random()%75)+330), ((rightWall3.center.y)-(rightWall4.frame.size.height)) );
rightWall5.center = CGPointMake( ((arc4random()%75)+330), ((rightWall4.center.y)-(rightWall5.frame.size.height)) );
rightWall6.center = CGPointMake( ((arc4random()%75)+330), ((rightWall5.center.y)-(rightWall6.frame.size.height)) );
rightWall7.center = CGPointMake( ((arc4random()%75)+330), ((rightWall6.center.y)-(rightWall7.frame.size.height)) );
rightWall8.center = CGPointMake( ((arc4random()%75)+330), ((rightWall7.center.y)-(rightWall8.frame.size.height)) );
rightWall9.center = CGPointMake( ((arc4random()%75)+330), ((rightWall8.center.y)-(rightWall9.frame.size.height)) );
rightWall10.center = CGPointMake( ((arc4random()%75)+330), ((rightWall9.center.y)-(rightWall10.frame.size.height)) );
rightWall11.center = CGPointMake( ((arc4random()%75)+330), ((rightWall10.center.y)-(rightWall11.frame.size.height)) );
leftWall1.center = CGPointMake( (15-(arc4random()%50)), (460-((leftWall1.frame.size.height)/2)) );
leftWall2.center = CGPointMake( (15-(arc4random()%50)), ((leftWall1.center.y)-(leftWall2.frame.size.height)) );
leftWall3.center = CGPointMake( (15-(arc4random()%50)), ((leftWall2.center.y)-(leftWall3.frame.size.height)) );
leftWall4.center = CGPointMake( (15-(arc4random()%50)), ((leftWall3.center.y)-(leftWall4.frame.size.height)) );
leftWall5.center = CGPointMake( (15-(arc4random()%50)), ((leftWall4.center.y)-(leftWall5.frame.size.height)) );
leftWall6.center = CGPointMake( (15-(arc4random()%50)), ((leftWall5.center.y)-(leftWall6.frame.size.height)) );
leftWall7.center = CGPointMake( (15-(arc4random()%50)), ((leftWall6.center.y)-(leftWall7.frame.size.height)) );
leftWall8.center = CGPointMake( (15-(arc4random()%50)), ((leftWall7.center.y)-(leftWall8.frame.size.height)) );
leftWall9.center = CGPointMake( (15-(arc4random()%50)), ((leftWall8.center.y)-(leftWall9.frame.size.height)) );
leftWall10.center = CGPointMake( (15-(arc4random()%50)), ((leftWall9.center.y)-(leftWall10.frame.size.height)) );
leftWall11.center = CGPointMake( (15-(arc4random()%50)), ((leftWall10.center.y)-(leftWall11.frame.size.height)) );
}
【问题讨论】:
-
不应该是(arc4random()%50)-15吗?
-
不,我想要 15 到 -35 的范围...如果我使用这个: (15-(arc4random()%50)) 它不应该返回吗?确实如此,但是当我将图像 xvalue 设置为此: (15-(arc4random()%50)) 时,一些图像要么从屏幕上消失,要么一起消失,我无法判断。这有效:(15-(arc4random()%15)) 但这给了我 0-15 的范围如果我将其更改为这样的东西:(15-(arc4random()%20)) 图像开始消失,甚至如果是(15-20)那只有-5,如果我手动将图像x值设置为-5它仍然会显示,-65也是如此...... ???
-
哦,等一下,对不起,那不行。 (((CGFloat) arc4random()/(CGFloat)0xFFFFFFFFu) * (35 - 15)) + 15
-
这就是我的想法,不幸的是,这不起作用:(15+((-1)*(arc4random()%50)))
-
这是什么:(CGFloat)0xFFFFFFFFu) ??
标签: iphone cgpoint arc4random