見出し画像

はじめてみよう。プログラミング! - Swift Playgroundsでゲーム作成-1。

Swift Playgroundsのいいところは使い勝手のいいクラスが最初から入っていることです。図形のテンプレートを使って"もぐらたたき"を作っていきます。

Canvas.shared.color = .green

これで緑色の画面が出来上がりです。

もぐら叩きのの部品としては、"穴"、と"もぐら"があればいいですね。

イラストを入れるとそれっぽくなりますが、今回は図形と文字で表現してあります。

穴は円形で、もぐらは絵文字で簡単に作ります。

let hole = Circle(radius: 4.0)
hole.color = .orange
hole.center = Point(x: 0, y: 4.0)

「もぐら」の代わりにクジラの絵文字を使います。

let mole = Text(string: "🐳")
mole.fontSize = 55
mole.center = Point(x: 0, y: 0)

として作っていきます。

こんな感じになっていると思います。これをクジラが穴に入っているようにするために、四角で隠します。

画像1

let cover = Rectangle(width: 8, height: 8)
cover.center = Point(x: 0, y: 0)

すると、

画像2

となって完全にクジラは隠れました。でも隠れたように見えないので、バックの色と同色にして見えなくします。

cover .color = .green

とします。ここでちょっとこれでは半円で面白くないので、円を少し上に上げてみます。

hole.center = Point(x: 0, y: 5.5)

とするとちょっと可愛らしくなりました。

画像3

あとはこの穴から出てきたようにクジラをだす動作をつけていきます。ここで"Timer"を使います。

まず、基本のコードです。

let timer  =  Timer.scheduledTimer(withTimeInterval: 0.05, repeats: true, block: { _ in
})

"block:"以下を書いてやることで"0.05"秒ごとに動くようになります

ここで新しい変数を定義します。

var mVel = 0.0

この変数で動きのスピスピードが変化します。"mole.center.y"を"mVel"分だけ動かします。

mole.center.y += mVel

次にある一定の高さまで行ったら逆むきにしてやり、上下する動きを出します。

  if mole.center.y <= 0{
       mVel = 0.3
   }else if mole.center.y >= 9.5{
       mVel = -0.3
   }

今回は、下限を

mole.center.y <= 0

上限を

mole.center.y >= 9.5

としてそれを超える場合には動きの方向を変えてやります。これで上下の動きが連続してできるようになりました。

画像4



いいなと思ったら応援しよう!

ピックアップされています

Swiftでいこう!

  • 644本

コメント

コメントするには、 ログイン または 会員登録 をお願いします。
プログラミング(Swiftなど)、写真、アップル関連、その他について書きます。 Swiftに関しては、公式のもの、いろんなサイトや本を参考にしながらコードの中身、仕組みを確認していこうと思っています。
はじめてみよう。プログラミング! - Swift Playgroundsでゲーム作成-1。|donguri
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1