2014年11月09日

ゲームのアップグレード (16) | デイリーボーナスを導入しよう!part2

さて、ようやくデイリーボーナスの本番に入れるかな?
あっ、まだだった!
ちょっとだけ、ネイティブプラグインを触んないといけないですね。
じゃ、まずはそこから!!


iOSデバイスから年と日を取り出す
何回も繰り返しになるけど、このゲーム、サーバー持たないんですよね。
なんで、デイリーボーナスとかも、デバイスの情報を元にあげる事になりますね。
ま、チートも出来るとは思うんですが、そこまで手間をかける人も居ない気もするんで(むしろ居たらありがたい。)、気にしない事にしますね。実害も少ないし。

さて、判定用に、自分でセットした固定の年月日からの経過日数を使いますね。比較が簡単だから。
年と週の取り出しは、ウィークリーリーダーボードの時にやったから、それと似た感じなんだけど、こんな感じでネイティブプラグインを書いてみましたよ。
Screen Shot 2014-11-09 at 2.40.27 AM.png
計算開始の日付けは今年の11月1日で、そこからの日数を返してます。
なんか、ややこしいですよね。カレンダー回りの処理って...
ま、いろいろ隠れてやってくれてるんですけど、それでも書いててややこしい....


ログインボーナスを判定して処理
さて、今回、ボーナスは2種類用意してみました。
ログインボーナスとデイリーボーナス!
ログインボーナスは、ゲームを起動した日数をカウントするだけ。30日までカウントして、その後は1日目に戻る仕様。
デイリーボーナスは、ゲームを毎日欠かさずプレイした人向けのボーナス。10日までカウントして、その後は1日目に戻る仕様。
その他、プレイしてない日が挟まると、カウントがリセットされる仕様。

で、その仕様に応じて書いたスクリプトがこんな感じ。
なんか、もっと奇麗に出来る気もするんだけどね〜。
Screen Shot 2014-11-09 at 2.46.54 AM.png

最初に渡されてる _strDay は、前にデバイスから取って来た2014年11月1日を基準とした日数のカウント。
180行目の data は、ローカルストレージに持ってる JSONObject で、そこから前回ボーナス渡した時の日付けを取り出し。
183行目で比べて今の日カウントが大きかったら、184行目で今回のボーナス対象の日数を取り出し。中でやってる事は、180行目と一緒で、ローカルストレージから値を取り出してるだけね。
で、185行目で、ボーナス表示処理を登録!
最初は結構簡単に考えてたんだけど、この表示処理もちゃんとストレージに配列で登録しないと駄目だって事に後で気がついて、ちゃんと登録する様に作り直しました...
そうしないと、ボーナス処理、飛ばされちゃう場合があるんだよね。
で、カウントをプラス1して再度保存。ここまでがログインボーナスの処理ね。
あっ、30日超えてカウントリセットしてないや!!
あとで、処理追加しときますねw

で、残りがデイリーボーナスなんだけど、195行目で、日カウントの違いが1日だった時だけボーナスのカウントをプラス1
それ以外はカウントリセット。
で、表示処理の登録と次回のボーナスカウントをローカルストレージに登録!
ね〜、処理自体は簡単なんだけどね〜。


ボーナス表示リストの中身
さて、急遽追加したボーナス表示リストをもう少しだけ。
中身自体はこんな感じになってるんだけど...
Screen Shot 2014-11-09 at 3.38.22 AM.png
ポイントは219行目かな?
このボーナス表示画面はリストなんで配列になってないとだめなんだけど、JSONObject.arr っていう static メソッドを使って配列だって事を明示的に初期化してやんないと駄目なんだよね。
それ以下は普通通り。
新規の JSONObject を作って(222行目)、ボーナスのタイプとボーナス対象の日カウントを各フィールドにセット(238,239行目)。
で、配列に追加(226行目)。
さらに、その配列をローカルストレージに保存(228行目)。ここの SetField メソッドは、フィールドが存在したら削除してから再設定してくれるみたいなんで、元々入ってたデータは気にしなくていいみたい。

あ〜、ねむい!!
ちょっともう無理だな、今日は...

なんで、今日はここまでね。
また、次回につ・づ・く

        にほんブログ村 ゲームブログ×PlayNCBlogへ
 初めてみました。よかったらクリックお願いね ♪


ねむ過ぎてこんな枕が必要
posted by やまけん at 10:01| Comment(0) | Unity | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: