はじめてみよう。プログラミング! - Swift Playgroundsでゲーム作成-4。
ゲームとして仕上げします。叩けば得点が加点、間違えば減点表示されるようにします。そして最後にはタイマー機能をつけてゲームを終わらせる仕組みを作っていきます。
まず、叩いて加点、減点を作っていきます。
まず、文字を表示する部分を作ります。
let scoreDisp = Text(string: "得点: \(score)",fontSize:30.0,fontName: "Menlo-Bold",color:Color.white)
scoreDisp.center = Point(x: 0.0, y: 35.0)
変数を作り、表示させる座標を指定してやれば表示されるようになります。
文字は "Text()"を使うことで簡単に文字が表示できるようになり、文字はもちろんのこと"\( )"で変数などの文字列以外も入れ込むことができるようになります。
表示ができたら今度は実際に叩いた時に加点、減点をするコードを追加していきます。
まず、モグラ的なもの、今回は"クジラ"にしていますがこれを叩いた時に点数を加点して、クジラは原点、元の位置までもどしてやります。
"叩く"ということ、ここでは、触った時、触れた時の命令を付け加えます。
.onTouchDown
というのを使います。
"クジラ"は変数"mole"で表せるので、
mole.onTouchDown {なんらかの命令}
という風になります。
叩いたら、加点を"10"して、表示部分に10を加えたものを表示するということにします。あと叩いた時に原点、元の位置に戻してやるのですが、その表示をスムーズにするために
animate{}
を使います。全体としては以下となります。
mole.onTouchDown {
score += 10
scoreDisp.string = "得点: \(score)"
animate {
mole.center.y = location[1]
}
}
これを"mole"の生成部分、
for location in locations{
let mole = Text(string:"🐳") ・・・・
の部分に組み込みます。
for location in locations{
let mole = Text(string:"🐳")
mole.fontSize = 55
mole.center = Point(x: location[0], y: location[1])
mole.onTouchDown {
score += 10
scoreDisp.string = "得点: \(score)"
animate {
mole.center.y = location[1]
}
}
moles.append(mole)
}
これで"クジラ"を叩け"10"が加算されます。
あとは、間違ってクジラの出てくる穴の"円"部分を叩いてしった場合は、"-10"するしくみも同じように作ります。
ここではなんら動作には関係ないので減点のみのコードとなります。
for location in locations{
let hole = Circle(radius: 4.0)
hole.color = .orange
hole.center = Point(x: location[0], y: location[1] + 5.6)
hole.onTouchDown {
score -= 10
scoreDisp.string = "得点: \(score)"
}
}
となります。
これで、加点、減点の仕組みはできました。実行してみましょう。
叩くところで加点、減点されているのがわかります。