はじめてみよう。プログラミング! - Swift Playgroundsでゲーム作成-2。
穴から出入りできるようになりました。今のままでは単純に出て、入ってが規則的になっています。
if mole.center.y <= 0{
mVel = 0.3 }
不規則にするにはこの部分をランダムな数字に変えます
if mole.center.y <= 0{
mVel = Double.random(in: 0.2 ... 0.6)}
とすれば、"0.2 ... 0.6"の間でランダムな数字が作られます。(参考ホームページでは違う方法"arc4random"を使う方法が紹介されています。)
これで穴からモグラ的なものが出てきるところまでできました。タイマーを使って繰り返して行うことが重要です。
let timer = Timer.scheduledTimer(withTimeInterval: 0.05, repeats: true, block: { _ in
mole.center.y += mVel
if mole.center.y <= 0{
mVel = Double.random(in: 0.2 ... 0.6)
}else if mole.center.y >= 9.5{
mVel *= -1.0
}
})
"block:"以降で動きを定義してやることで動きが出ます。
1つモデルができました。これを複数配置することでゲームらしくしていきます。
まず、どこに配置するかを決めてやる必要があります。その表示する場所を指定するには座標を指定する必要があります。
たくさんの座標を一度に指定するには配列が便利です。ひとまとめ記述することができます。
let locations = [
[8.0,16.0],[-8.0,16.0],
[-16.0,0.0],[0.0,0.0],[16.0,0.0],
[-8.0,-16.0],[8.0,-16.0],
]
最小単位として
[x座標,y座標]
となります。例えば
[8.0,16.0]
と書いてあれば、x座標が"8.0",y座標が16.0"ということになります。
[-8.0,16.0]
だと、上の座標"[8.0,16.0]"と比べるとy座標が"16.0"と同じですのでx座標"-8.0"のみの変化ということは水平方向にずらした座標ということです。
7カ所の円が配置できます。
これをコードを書いて実行します。
for in ループで繰り返し。円の座標が7つ入った変数"locations"を使います。
for location in locations{
let hole = Circle(radius: 4.0)
hole.color = .orange
hole.center = Point(x: location[0], y: location[1])
}
[x座標,y座標]となっていて配列番号で表すと[0,1]となります。
hole.center = Point(x: location[0], y: location[1])
円の中心座標を配列番号で示して、7つの配列で表される座標の位置に円を配置します(上記の画像のようになります)。
7つの円が描画できました。