簡體   English   中英

隨機分布精靈

[英]randomly distribute sprites

我定義了:

#define kNumAstroids 15

和雪碧添加

 _robbers = [[CCArray alloc] initWithCapacity:kNumAstroids];
    for (int i = 0; i < kNumAstroids; ++i) {
        CCSprite *asteroid = [CCSprite spriteWithSpriteFrameName:@"robber.png"];
        asteroid.visible = NO;
        [_batchNode addChild:asteroid];
        [_robbers addObject:asteroid];

更新方式

double curTime = CACurrentMediaTime();
if (curTime > _nextRunemanSpawn) {
    float randSecs = [self randomValueBetween:0.20 andValue:1.0];
    _nextRunemanSpawn = randSecs + curTime;

    float randY = 80.0;
    float randY1 = 185.0;
    float randY2 = 290.0;
    float randDuration = [self randomValueBetween:4.0 andValue:4.0];
    float randDuration1 = [self randomValueBetween:1.0 andValue:1.0];

    CCSprite *asteroid = [_robbers objectAtIndex:_nextRobber];
    _nextRobber++;

    if (_nextRobber >= _robbers.count) {
        _nextRobber = 0;
    }
    //[asteroid stopAllActions];
    asteroid.position = ccp(winSize.width +asteroid.contentSize.width / 2 , randY);
    asteroid.visible = YES;

    [asteroid runAction:[CCSequence actions:[CCMoveBy actionWithDuration:randDuration position:ccp(-winSize.width-asteroid.contentSize.width, 0)],
                         [CCCallFuncN actionWithTarget:self selector:@selector(setInvisible:)],nil]];

我想在randY,randY1和randY2之間隨機分布這些精靈

我可以使用arc4random()函數嗎? 如果可以,怎么辦?

使用arc4random()查找您的隨機Y pos

float random_Y = randY + arc4random() % randY2;

然后在代碼中使用random_Y值

if (curTime > _nextRunemanSpawn)
{
float randSecs = [self randomValueBetween:0.20 andValue:1.0];
_nextRunemanSpawn = randSecs + curTime;

float randY = 80.0;
float randY1 = 185.0;
float randY2 = 290.0;
float randDuration = [self randomValueBetween:4.0 andValue:4.0];
float randDuration1 = [self randomValueBetween:1.0 andValue:1.0];

CCSprite *asteroid = [_robbers objectAtIndex:_nextRobber];
_nextRobber++;

if (_nextRobber >= _robbers.count) {
    _nextRobber = 0;
}
//[asteroid stopAllActions];
asteroid.position = ccp(winSize.width +asteroid.contentSize.width / 2 , random_Y);//in this place
asteroid.visible = YES;}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM