前のページまでで、タッチ位置に複数の図形を描き、アニメーションを表現しました。

ここではマルタタッチに挑戦します。LilyPlaygroundでは、screen.touchesで複数のタッチ位置を得られます。 for文を用いて、複数の指の位置に図形を描いてみましょう。


  1. design関数に screen.clearColor = .white を書きます。 背景は白に設定します。

  2. update関数を用意します。

  3. for touch in screen.touchesの繰り返しブロックを書きます。touchにはタッチの座標が順に代入されます。

  4. forのブロックの中でPGRectangle()を書きます。加えて、前ページと同様の記述を追加します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
func design( screen:PGScreen ) {
    screen.clearColor = .white
}

func update( screen:PGScreen ) {
    for touch in screen.touches {
        let d_scale = (0.25...0.5).randomize
            
        PGRectangle()
        .position( touch.xy )
        .color( .random )
        .scale( .zero )
        .angle( .random )
        .deltaAngle( degrees:1.0 )
        .deltaScale( 
            dw:d_scale,
            dh:d_scale            
        )
        .deltaLife( -0.01 )
        .deltaAlpha( -0.01 )
    }
}
  1. 「コードを実行」を押します。

目標

  • 実行後、複数のタッチに反応したら成功です。 なお結果例はシングルタッチの結果です。iPadでマルチタッチを試してみてください。

終わったら次のページへ進みます。

※録画はmacで行っているためシングルタッチの結果になります。 iOSで行うとマルチタッチになります。