我正在构建我的第一个2D平台游戏,我希望使用arc4Random
为每隔几秒生成的对象设置一些限制。
目前,一只鸟会从右向左飞过屏幕,大部分时间鸟儿都会在空中飞行,但有时鸟类在地面上看起来很奇怪。
我想做的是设定鸟类产生的最小和最大高度,这可能吗?
以下是一些代码......
func spawnBird() {
var birdP = SKNode()
birdP.position = CGPointMake( self.frame.size.width + birdTexture1.size().width * 2, 0 );
birdP.zPosition = -10;
var height = UInt32( self.frame.size.height / 1 )
var y = arc4random() % height;
var bird1 = SKSpriteNode(texture: birdTexture1)
//Code Removed
birds.addChild(birdP)
答案 0 :(得分:4)
您可以设置最小和最大高度:
var height_max = UInt32( self.frame.size.height )
var height_min = UInt32( 20 )
var bird_range = arc4random_uniform(height_max - height_min + 1) + height_min;
替代方法:
var bird_range = (arc4random() % (height_max - height_min) + 1) + height_min;
方法图:
使用最大/最小高度的两个从未低于20
,您使用的原始方法经常会点击0
。
答案 1 :(得分:1)
这是标准问题。
int randomInIntRange(int minVal, int maxVal) {
return minVal+arc4random_uniform(maxVal-minVal+1);
}
CGFloat randomInFloatRange(CGFloat minVal, CGFloat maxVal) {
return minVal+(maxVal-minVal)*(arc4random()/(double)(UINT32_MAX));
}