大宮盆栽デイズ - Omiya Bonsai Days -

冗談めかす埼玉のファインマン

パターンで置く@コードを学ぼう3

コードを学ぼう3は難しい。ステージを進めていっても、「なんだったけ?」と思う場面が多いです。それなので、コードを学ぼう3の途中からですが、また解答例を掲載することにしました。

iPadはやっぱり画面が小さく、過去の問題を振り返るのがちょっと面倒なところがあります。また、コメントを丁寧に自分で入れていくことで理解が高まるような気がします。

それと、今回は動画を作成することができましたが、時々 Playgounds のムービーを作成することが出来ないことが頻発しています。これについては不明です。誰かムービーを収録するコツを知っている方はいらっしゃらないでしょうか。

// パターンで置く@コードを学ぼう3
// a - e はそれぞれ動物の emoji
let animals = [a, b, c, d, e]

// パターン(今回の場合は渦巻き)のポイント(位置・座標)情報を配列に代入する
let points = scene.spiralPoints(spacing: 50, count: 200)
// 配列 points のインデックス
var pointIndex = 0


func addImage(touch: Touch) {
    if touch.previousPlaceDistance < 80
    { return }
    // Get a random image and place it.
    // index に配列 animals の数をランダムに代入
    let index = randomInt(from: 0, to: animals.count - 1)
    
    // graphic に animals[] の画像を読ませる
    let graphic = Graphic(image: animals[index])

    // グラフィックの大きさを「0.5」にする
    graphic.scale = 0.5
    
    // touch.position (タッチした位置)に graphic を挿入
    scene.place(graphic, at: touch.position)
    
    
    // Get position from points at pointIndex.
    // 冒頭で決めたパターン位置情報(座標)を position に代入
    let position = points[pointIndex]
    
    
    // Increment pointIndex.
    // pointIndex をインクリメント(+1)
    pointIndex += 1
    
    // ポイント(点・ドット)の数が points.count (今回の場合は「200」)と等しくなったら、「0」にする
    if pointIndex == points.count {
        pointIndex = 0
    }
    
    // Move graphic to position.
    // タッチで生成した gragraphic をパターンの座標位置に移動させる
    graphic.move(to: position, duration: 3)
}

youtu.be