自作アプリ第四弾の話なんですが、ここからはSpriteKitを使って、ゲームばかり作ることになります。XcodeにあるGameテンプレートのやつですね。
んで、2冊ほどゲームアプリの教科書を買ったんですが、とりあえずそれらを端からパクっていこうって決めて、それで最初に作ったのが今回のアプリですね。パワハラ上司をどつき回せ。
これはiPhoneのゲームアプリをつくろうって本にある、モグラ叩きをそのままパクリました。
教科書を改良した点
教科書だと、モグラがずーっと出てきて、それを叩いて10点、みたいな感じなんですが、これを上司、社長、OLと3人のキャラが出てくるように変えました。
上司を叩くとプラス10点、社長と叩くとマイナス30点、OLを叩くとプラス50点、ていう設定です。
大変だったところ
実は3つのキャラを出すのに、一瞬苦労しました。まあ2時間とかそのくらいだったんで、別に苦労でもないんですけど、丸パクリで楽勝じゃー!!って思ってただけにショックでしたw
モグラだけを表示する場合は、フォーエバーなんとかってやつで、ずーっと出しておけばいいんですけど、これキャラを増やすとそうはいかないんですよね。
アクションを1ターンごとにして、それを秒数指定で繰り返すってコードにしました。モザイクアートクイズのモザイクを薄くしてくやつと同じですね。
func mogmog(){
〜 省略 〜
//targetは画像名の変数
for i in 0...4{
let random = Int(arc4random_uniform(20))
if(random>0 && random<13){
target = "boss"
}else if(random>=13 && random<18){
target = "ceo"
}else{
target = "OL"
}
〜 省略 〜
let action1 = SKAction.moveToY(-1000, duration: 0.0)
let action2 = SKAction.waitForDuration(1.0,withRange: 1.5)
let action3 = SKAction.moveToY(hole.position.y, duration: 0.0)
let action4 = SKAction.waitForDuration(1.0, withRange: 2.0)
let action5 = SKAction.moveToY(-1000, duration: 0.0)
let actionS =SKAction.sequence([action1,action2,action3,action4,action5])
mog.runAction(actionS)
}
}
適当なんですが、こんな風に関数にしました。んで赤字2つを足した秒数で繰り返せばOK。
これはモグラが出てくるまでの最大秒数と、出ている間の最大秒数の合計ですね。
ランダムになってるんですが、最大はこの幅です。
timeLimit = NSTimer.scheduledTimerWithTimeInterval(3.5, target:self, selector: "mogmog", userInfo: nil, repeats: true)
それで3.5秒ごとに繰り返すと。そういう感じです。
ってごめんなさい。今改めてみたら、これ間違ってます。本当は3.75秒が正しいですね。
let action2 = SKAction.waitForDuration(1.0,withRange: 1.5)
これって1秒の前後幅1.5/2だから、 0.25~1.75ってことになり、最大値は1.75ですね。
だから2.0+1.75=3.75が正解です。
まあこの間違いがゲームにいい味を出してるって思って、とりあえずの修正は控えておきましょうw
こだわった点
相変わらずのクオリティながら一つだけこだわった点があります。
それはあれ。
声
叩いたときに声が出るんですけど、これは何度も撮り直して決めました。ちなみに友達の声です。
ズキューンっていうのは、ジョジョでディオがエリナの唇を奪ったときの音ですね。これ分かる人少ないでしょうけどw
全クリが半端なく難しい
このゲーム、5ステージしかないんですが、それでも全クリが難しいです。
地味にダウンロードされてるんですが、全クリしてる人は2%しかいません。
まあその前に飽きてるのかもしれないですねw
最後に
えー、こんな感じでパワハラ上司をどつき回せってゲームを作ってみました。
これが初めてのゲームだったんで、色々と興奮した覚えがあります。
もしもダウンロードすることがあったら、音を出してみてください。
声だけ聞いてもらえれば、僕は満足です。