Произволно генериране на SKSpriteNode въз основа на възможни стойности в Swift

Имаме два персонализирани подкласа на SKSpriteNode.

Едното се казва circleNode, а другото triangleNode. Има три подтипа към опцията за кръг, които се създават с персонализиран init метод, предаващ enum.

Например:

enum CircleType: UInt {
    case Circle1 = 1
    case Circle2 = 2
    case Circle3 = 3
}

class TapCircleIcon : SKSpriteNode
{
    convenience init(typeOfCircle: CircleType) {

В рамките на сцената на играта
В рамките на сцената на играта ние контролираме раждането на възлите на спрайтовете. Има общо 4 различни опции, кръг1, кръг2, кръг3 и триъгълник.

Въпрос
Кой е най-добрият начин в swift произволно да изберете един от тези спрайтове за хвърляне на хайвера си? В зависимост от резултата можем да инициализираме правилния спрайт като TapCircleIcon(typeOfCircle: CircleType.Circle2)


person StuartM    schedule 07.05.2015    source източник


Отговори (1)


Да изберете произволно нещо arc4random и неговите приятели са добри. Моето мнение за CircleType:

let ct = CircleType(rawValue: UInt(arc4random_uniform(3) + 1))

Както е описано в http://nshipster.com/random/ arc4random_uniform(N) доставя произволно int между 0 и N-1.

person Rainer Schwarze    schedule 07.05.2015
comment
Благодаря, използвах вариант на това, всъщност първо генерирах числото, след което в зависимост от числото създадох let, тъй като номер 4 е от различен клас според въпроса - person StuartM; 28.05.2015