Случайно выбирать между заранее определенными CGPoints?

В моей игре есть три предопределенных точки возрождения, которые я сохранил в иварах CGPoints.

CGPoint spawnPos1 = ccp(50, 50);
CGPoint spawnPos2 = ccp(150, 150);
CGPoint spawnPos3 = ccp(250, 250);

То, что я хотел бы сделать, это случайный выбор между этими точками. После этого я установлю положение своих спрайтов на эту точку. Могу ли я как-то использовать arc4random?

Я видел множество примеров создания случайных очков и уже делаю это в своей игре, но я не понимаю, как использовать заранее определенные очки? Любые предложения будут ценны?

Итак, из метода инициализации я вызываю [self createSpawnPoint]; где у меня есть эти три точки, и там я установлю spawnPoint, который является просто ivar, который я буду использовать для установки своих спрайтов другим методом.

Заранее спасибо!


person Mike Owens    schedule 11.02.2013    source источник


Ответы (1)


Просто используйте arc4random() % 3, чтобы выбрать значение:

int spawnChoice = arc4random() % 3;
CGPoint spawnPoint = CGPointZero;

if(spawnChoice == 0){
  spawnPoint = CGPointMake(50.0, 50.0);
}
else if(spawnChoice == 1){
  spawnPoint = CGPointMake(150.0, 150.0);
}
else{
  spawnPoint = CGPointMake(250.0, 250.0);
}

Надеюсь, это поможет!

person msgambel    schedule 11.02.2013
comment
В общем, постоянно бывает! - person msgambel; 11.02.2013