1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Swiftでパズルゲーム制作を開始した

Posted at

動機

今まで独自のゲームを作ってばかりでしたが、全然売れなかったので、有名ゲームをパク・・参考にすることにしました。
とりあえず形から入ろうということで、ドラゴンとパズルをテーマにすることにしました。

このテーマで有名なゲームを参考にしていたのですが、「面白いか?」と単純な疑問を抱きました。
もう少し分かりやすいルールのパズルの方が良いのではと思い、別の有名ゲームを参考にしました。
ツムツムかポコパンかよく覚えていませんが、その辺りのゲームのルールが分かりやすそうだったので、パズル部分は隣接するアイテムをなぞって消すルールにしました。

現状

TestFlightでベータ版をテストしている状態です。

ゲームロジック

動きの処理は、1つの要素の下の要素と当たり判定をとって、当たってなければ落下する感じです。
消す処理は、同じ色の要素を選択したら消える。同じ番号の要素を選択したら消える。同じ形の要素を選択したら消える。という感じです。

下記は同色の要素がなぞられたかを判断しています。

        var i: Int = -1
        var count1: Int = 0
        for e in elements {
            if e.select {
                if i != -1 {
                    if i == e.colorNumber {
                        e.delete = true
                        e.deleteY = e.shape?.position.y
                        count1 += 1
                    } else {
                        count1 = -1
                        break
                    }
                }
                i = e.colorNumber!
            }
        }

        if count1 >= 1 {
            for e in elements {
                if e.select {
                    if i == e.colorNumber{
                        e.delete = true
                        e.deleteY = e.shape?.position.y
                        break
                    }
                }
            }
        
            for e in elements {
                if e.delete {
                    initElement(e: e)
                }
            }
        }
        if count1 > 0 {
            addPoint(p: count1)
        }

まとめ

ソースは GitHub にアップしています。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?