使用 arc4Random 设置精灵垂直位置的限制

Setting limits to sprite vertical location with arc4Random

我正在构建我的第一个 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)

您可以设置最小和最大高度:

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;

绘制的方法:

这两个用max/min身高从来没有低于20,原来你用的方法经常打0.

这是标准题。

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