ホーリーのプログラミング日記

ホーリーのプログラミング日記

エキセントリック・スーパーアプリクリエイター / アプリ総DL数 約180万 / 全然分からない 俺は雰囲気でアプリを作ってる / iOS : apple.co/3m3HxSm / Android : bit.ly/3ma0liZ

アブラカタブラの難所を超えてきました

 

アブラカタブラってゲームを作ってるんですが、やっとプログラミングの難所を超えた気がします。

「油田採掘ゲーム アブラカタブラ」を作ります - ホーリーのプログラミング日記

 

自分の中の難所っていうのは、以下の3点でした。

 

① ライフ制の導入

② みんなのゴルフ風のインパクトゲージ

③ カードガチャシステム

 

ライフ制の導入

これは石油を掘るゲームなんですが、毎日少しずつ掘ってもらいたいので、ライフ制を導入しようと思いました。

一回プレイするごとにライフを1個消費して、そのライフは時間が経たないと回復しないってシステムです。

僕がやってるゲームだと「ツムツム」とかそうですね。アプリゲームには多いライフ制ですが、これを作りたかったんです。

 

色々とやってみた結果、なんかそれっぽいのが出来ました。

 

 

動かしてみてる感じだと、問題ないですね。恥ずかしいんですが、一応コードを貼っておきましょうw

 

【追記 2017.04.27】

ごめんなさい。下記のコードなんですが、これ盛大に間違ってましたw

その後に別のやり方で実装したので、詳しくはこの記事をご覧ください。

【Unity】バックグラウンドでも時間の経過を取得する方法 - ホーリーのプログラミング日記

 

using UnityEngine;
using System.Collections;
using System;

public class TimeManager2 : MonoBehaviour {

    int life;

    int addFlg = 0;

    DateTime startTime;
    DateTime nowTime;

    double seconddiff = 0;

    double minute = 0;
    double second = 0;
    double num = 5;


    // Use this for initialization
    void Start () {
        life = PlayerPrefs.GetInt ("LIFE");
    }
    
    // Update is called once per frame
    void Update () {

        if (life >= 0 && life < 5 && addFlg ==0) { //ライフがない状態
            startTime = DateTime.Now;
            addFlg = 1;

        }

        if(addFlg == 1){
            nowTime = DateTime.Now;

            seconddiff = (nowTime - startTime).TotalSeconds;
            seconddiff = Math.Floor(seconddiff);

            minute = Math.Floor((num - seconddiff)/60);
            second = Math.Floor((num - seconddiff)%60);
        }

        if (seconddiff >= num && life >= 0 && life < 5 && addFlg == 1) {
            life++;
            PlayerPrefs.SetInt ("LIFE",life);
            addFlg = 0;
        }

    }
        
}

 

みんなのゴルフ風のインパクトゲージ

みんゴル風のインパクトゲージを導入したかったんですよ。石油を掘ってると岩が出てくるんですが、そのときにこのゲージが出てきます。

んで、上手くインパクト出来ると、岩が壊れて、コインを獲得出来るってシステムです。

これはこのゲームで唯一技術介入があるポイントですね。湘南辻堂地区において、みんゴルの腕前がベスト20に入る僕だけに、このシステムも、どうしても導入したかった。

 

えー、結果はこんな感じ。

 

 

現状、自分でもジャストインパクト出来ないんですが、まあいいでしょう。

デザインを整えれば、いい感じになると楽観視していますw

 

カードガチャシステム

実はこれを実装するのが一番手間取りました。ガチャなんですけど、カードを引いていくんですよ。例えば1000コインで一回引けるんですが、引いてハズレの場合、次回はそのカードがオープンになってるって仕組みです。

下の動画を見ていただければ、なんとなく分かっていただけるかと。

 

 

9枚あるんで、9回引けば、必ず当たります。

ここで「動画を見るともう一回引ける」みたいなことにしたいんですよね。お金ほしいんでw

 

最後に

えー、こんな感じで、アブラカタブラの難所を超えた気がします。プログラミングの。

 

ただ、ここからが難しい。なんせあれですからね。

 

イラストが待ってますから

 

大嫌いなお絵かきの時間がやってくるわけですよ。ここからは。

いやー、憂鬱だわ。マジで。

 

四苦八苦した結果、現状はこんな感じになっています。

 

f:id:gevvoihorry:20170412180043p:plain

 

ああ、憂鬱だわ。。 

 

P.S.

ツイッターに貼ってある動画なんですが、どれも直撮りしてるだけあって、見にくいですね。しかもカメラ構えてる自分も映ってるし。

お恥ずかしい限りなんですが、凝視されなくていいかなと思っていますw