2016-07-25 5 views
1

のように一定の時間のための私のゲームをロックするこんにちは、私は2DトップダウンRPGゲームを持っている、と私は一定の時間のための私のゲームをロックする方法があったかどうかを知りたいと思いました私の選手が自分の心のすべてを失ったとき(カウントダウン)。カウントダウンが完了するまで、ユーザーがゲームにアクセスできない場合でも。あなたの人生のすべてを失ったときにキャンディーが砕けるように。これまで私は、プレイヤーが死んだとき(彼の心のすべてがなくなったとき)、GameOverと言うパネルをスライドさせました。しかし、私はゲームのロックをどのようにして一定時間かけて行うべきかわからず、ゲームがまだロックされていても、メインメニューに戻ることを願っています。私が前に言ったように、キャンディー・クラッシュ・サガと同じようにしたいのです。プレイヤーがライブを失うと、ゲームをプレイするのにある程度の時間を待たなければなりません。Unity2D:どのようにソートのキャンディクラッシュ

あなたはパネルの上に私のゲームを見ることができるように、このスクリプトは、私の選手の健康スクリプトでは、私のUIマネージャだけでなく、これにリンクされている:

public int curHealth; 
public int maxHealth = 3; 
Vector3 startPosition; 
public PlayerHealth playerhealthRef; 
float counter; 
public Animator anima; // drag the panel in here again 
private UI_ManagerScripts UIM; 
private PlayerScript ps; 


void Start() 
{ 
    curHealth = maxHealth; 
    startPosition = transform.position; 
    ps = GameObject.FindGameObjectWithTag("PlayerScript").GetComponent <PlayerScript>(); 

} 


void Update() 
{ 

    if (curHealth > maxHealth) { 
     curHealth = maxHealth; 
    } 
    if (curHealth <= 0) { 

     Die(); 
    } 
} 

void Awake() 
{ 
    UIM = GameObject.Find ("UIManager").GetComponent<UI_ManagerScripts>(); 
} 

void Die(){ 

    if (PlayerPrefs.HasKey ("Highscore")) { 
     if (PlayerPrefs.GetInt ("Highscore") < ps.Score) { 
      PlayerPrefs.SetInt ("Highscore", ps.Score); 
     } 
    } else 
    { 
     PlayerPrefs.SetInt ("Highscore", ps.Score); 
    } 

    UIM.EnableBoolAnimator(anima); 
} 

public void Damage(int dmg) 
{ 
    curHealth -= dmg; 
    Reset(); 
} 

void Reset() 
{ 
    transform.position = startPosition; 
    GotoMouse.target = startPosition; 

     } 
    } 

これは私のUIManagerのスクリプトです:

public AudioClip swooshSound; 

public void DisableBoolAnimator(Animator anim) 
{ 
    anim.SetBool ("IsDisplayed", false); 
} 

public void EnableBoolAnimator(Animator anim) 
{ 
    anim.SetBool ("IsDisplayed", true); 
} 

public void NavigateTo(int scene) 
{ 
    Application.LoadLevel (scene); 
} 

public void ExitGame() 
{ 
    Application.Quit(); 
} 

public void PauseGame() 
{ 
    AudioSource.PlayClipAtPoint (swooshSound, transform.position); 
    Time.timeScale = 0; 
} 

public void UnPauseGame() 
{ 
    Time.timeScale = 1; 
    } 
} 

いただきありがとうございます:)

+0

http://answers.unity3d.com/questions/713220/how-can-i-make-a-life-system-like-candy-crush.html –

+0

ありがとうすべてのプレイヤーの人生が無駄になったら私のゲームをロックする。 –

+0

「ロック」とはどういう意味ですか? –

答えて

0

を使用すると、一定時間プレイヤーの待ち時間を持っているしたい場合は、ファイルへのDateTimeを保存する必要があります。プレイヤーがプレイしようとすると、日付/時刻が後でファイルに保存された日付/時間を超える場合次に、ゲームのチェックを持っています。このような何か:

//For saving the file when the player loses 
File.WriteAllText("path_to_file", DateTime.Now.AddHours(1).ToString()); 
//For checking to see if the player can play 
if(Convert.ToDateTime(File.ReadAllText("path_to_file")) < DateTime.Now) 
{ 
    //Allow player to play 
} 
else { 
    //Tell player they can't play 
} 

その後、あなたはプレイヤーが待機するように、またはあなたが待つプレイヤーを望むしかし何分にDateTime.Now.AddMinutes(1)に変更することができますしたいDateTime.Now.AddHours(1)にしかし、多くの時間を変更します。希望:これは助けてくれました:)

+0

は、ただ一つの質問は、私は私のプレーヤーの健康スクリプトにこれを追加する必要があります持っているか、新しいスクリプトを作成し、返信いただきありがとうございますあなたは、あなたがそれでやりたいことができ –

+0

ありがとうございました。私は 'Die'メソッドに' File.WriteAllText() 'を追加します。メソッドがプレイヤーにもう寿命があるかどうかをチェックし、そうでなければ 'WriteAllText()'を呼び出させます。次に、ファイルをチェックするコードの部分を、再生ボタンのクリックを管理するスクリプトに追加します。プレイヤーは任意のより多くの生命を持っている場合、それはチェックしており、そうでない場合は、ゲームはそれらを教えなければならない場合、彼らは待たなければならない、または時間がファイルに保存された時間を過ぎている場合は、それらを再生できるよう確認するためにファイルをチェック。それがあなたを助けた場合、私の答えを受け入れたとマークすることを忘れないでください:) –

関連する問題