見出し画像

はじめてみよう。プログラミング! - 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)"
   }
   
}

となります。

これで、加点、減点の仕組みはできました。実行してみましょう。

画像1

叩くところで加点、減点されているのがわかります。


この記事が気に入ったらサポートをしてみませんか?