動機
今まで独自のゲームを作ってばかりでしたが、全然売れなかったので、有名ゲームをパク・・参考にすることにしました。
とりあえず形から入ろうということで、ドラゴンとパズルをテーマにすることにしました。
このテーマで有名なゲームを参考にしていたのですが、「面白いか?」と単純な疑問を抱きました。
もう少し分かりやすいルールのパズルの方が良いのではと思い、別の有名ゲームを参考にしました。
ツムツムかポコパンかよく覚えていませんが、その辺りのゲームのルールが分かりやすそうだったので、パズル部分は隣接するアイテムをなぞって消すルールにしました。
現状
TestFlightでベータ版をテストしている状態です。
パズルゲーム制作途中。
— 泉芳樹 #voxel (@izumi_yoshiki) July 31, 2020
ベータ版を試してもらっています。
TestFlightを使ってiPhoneでテストしてます。#ゲーム制作 #IndieGameDev #パズル pic.twitter.com/kxb8rFVemw
ゲームロジック
動きの処理は、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 にアップしています。