我试图将一个随机对象放在X轴的屏幕上,让它在屏幕的上半部分(Y轴)滚动屏幕。手机处于风景中。
滚动工作正常,但我不断获得在高于屏幕高度的位置创建的对象。以下是基于this问题的代码。
- (CGPoint) randomPointWithinContainerSize:(CGSize)containerSize forViewSize:(CGSize)size
{
CGFloat yRange = containerSize.height - size.height;
CGFloat minY = (containerSize.height/2 - yRange) / 2;
int randomY = (arc4random() % (int)floorf(yRange)) + minY;
return CGPointMake(self.size.width + 100,randomY);//randomX,
}
self.size.width + 100
正在添加我精灵的一半。
这是我的位置代码:
sprite.position = [self randomPointWithinContainerSizeGround:self.scene.size forViewSize:sprite.frame.size];
同样,我希望它只滚动屏幕的上半部分而不是在屏幕的Y轴边界外创建。
我该怎么做?
答案 0 :(得分:1)
这应该有用......
#define ARC4RANDOM_MAX 0x100000000
- (CGPoint) randomPointWithinContainerSize:(CGSize)containerSize forViewSize:(CGSize)size
{
// Ensure that the sprite's y value is within the container
CGFloat yRange = containerSize.height/2 - size.height;
CGFloat minY = (containerSize.height + size.height) / 2;
CGFloat randomY = ((double)arc4random()/ARC4RANDOM_MAX) * yRange + minY;
return CGPointMake(containerSize.width+size.width,randomY);
}