我正在快速制作一个简单的Dice类。

我希望使用骰子应具有的所需眼睛/侧面来调用Dice初始化程序。我有两个变量来设置边数的最小值和最大值,您应该可以在初始化时给定骰子...

但是,当我无法快速尝试try/catch时,如果用不属于该范围的数字初始化骰子,我不确定如何使init失败。

我的代码如下:

class Dice : SKSpriteNode {

    let sides : UInt32
    var score : Int

    init(sides : Int){

        let min_sides = 2
        let max_sides = 6

        self.sides = UInt32(sides)
        self.score = 1

        let imageName = "1.png"
        let cardTexture = SKTexture(imageNamed: imageName)

        super.init(texture: cardTexture, color: nil, size: CGSize(width: 100, height: 100))
        userInteractionEnabled = true

}

最佳答案

请改用可失败的初始化程序。如果条件不满足,您可以从中返回nil

    init?(sides : Int){

     if sides > max_sides{
           return nil
         }
    }

07-27 19:03