gpt4 book ai didi

ios - SpriteKit - 仅半个屏幕生成随机 Sprite

转载 作者:行者123 更新时间:2023-11-29 02:37:44 25 4
gpt4 key购买 nike

我试图将一个随机对象放置在屏幕外的 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 。

这是我的位置代码:

sprite.position = [self randomPointWithinContainerSizeGround:self.scene.size forViewSize:sprite.frame.size];

同样,我希望它只滚动到屏幕的上半部分,而不是在屏幕的 Y 轴边界之外创建。

我该怎么做?

最佳答案

这应该可以...

   #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);
}

关于ios - SpriteKit - 仅半个屏幕生成随机 Sprite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26165332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com