2015-03-24 3 views
0

Я пишу маленькую игру, в которой объекты попадают случайно, мне нужно реализовать логику, где я могу вычислить интервал ожидания для следующего экземпляра в соответствии с таймером. (Поскольку игра прогрессирует, время ожидания появления спава должно уменьшаться).Необходимо уменьшить промежуток времени ожидания появления всплытия (float), основанный на значении time.time, мгновение двух объектов должно уменьшаться на некоторую долю

я пытаюсь икру объекты в игре те объекты, имеете жизнь до следующего появляться, игроку необходимо закладках пальцы, как они появляются, и я пытаюсь создать экземпляр эти пальцы быстрее по мере продвижения игры

только изо всех сил, чтобы получить математическое уравнение, чтобы получить значение для spawnWait, основанного на Time.time. Надеюсь, я написал это правильно сейчас.

enter image description here

мне нужно уравнение для графа что-то вроде в первом кватере (+ х, + у) для time.time & икры ждать. хотя и не очень уверен.

using UnityEngine; 
using System.Collections; 
using UnityEngine.UI; 

public class GameController : MonoBehaviour { 
    // Use this for initialization 
    public GameObject GoodThumb; 
    public GameObject BadThumb; 
    public int max = 22; 
    public float spanWait = 10.0f; 
    public static bool gameOver = false; 
    Vector3 theNewPos = Camera.main.ViewportToWorldPoint(new  Vector3(0,0,11)); 
    Quaternion theNewRotation= Quaternion.Euler(0,0,0); 

    void Start() { 
     StartCoroutine(spawn()); 
     OnGameStart(); 
    } 

    void Update() {  
     Time.deltaTime 
    } 
    // Update is called once per frame 
    void Update() { 
    // SpawnRandom(); 
     ChooseFinger(); 
    } 

    public int ChooseFinger() 
    { 
     return Random.Range (1, 5); 
    } 

    void OnGameStart() 
    { 
     //Debug.Log ("Game Started"); 
    } 

    IEnumerator spawn() { 
     GameObject go; 
     while(true) 
     { 
      int randomLoop = Random.Range(2,5); 
      for (int i = 0; i < randomLoop; i++) 
      { 
       pickRandomFinger(); 
       go = Instantiate(GoodThumb); 
       go.transform.position = theNewPos; 
       go.transform.rotation = theNewRotation; 
      // Debug.Log(theNewPos); 
      // Debug.Log(theNewRotation); 
       yield return new WaitForSeconds(spanWait); 
      } 
      pickRandomFinger(); 
      go = Instantiate(BadThumb); 
      go.transform.position = theNewPos; 
      go.transform.rotation = theNewRotation; 
      yield return new WaitForSeconds(spanWait); 
      if (gameOver) 
      { 
       break; 
      } 
     } 
    } 

    public void pickRandomFinger() 
    { 
     int FingerNo = ChooseFinger(); 
     Debug.Log (FingerNo); 
     switch (FingerNo) 
     { 
     case 1: // finger1 type bottom good 
      theNewPos = Camera.main.ViewportToWorldPoint(new Vector3(Random.Range(0.0F,1.0F),1.0F, 11)); 
      theNewRotation = Quaternion.Euler(0,0,180); 
      break;    
     case 2: // finger4 type right good 
      theNewPos = Camera.main.ViewportToWorldPoint(new Vector3(1.0F,Random.Range(0.0F,1.0F), 11)); 
      theNewRotation = Quaternion.Euler(0,0,90);    
      break; 
     case 3: // finger2 type top good 
      theNewPos = Camera.main.ViewportToWorldPoint(new Vector3(Random.Range(0.0F,1.0F),0.0F, 11)); 
      theNewRotation = Quaternion.Euler(0,0,0);    
      break;    
     case 4: // finger3 type left good 
      theNewPos = Camera.main.ViewportToWorldPoint(new Vector3(0.0F,Random.Range(0.0F,1.0F),11)); 
      theNewRotation = Quaternion.Euler(0,0,270);    
      break; 
     } 
    } 
} 
+3

Что вы хотите сказать? – fxm

+0

Пожалуйста, не добавляйте теги в заголовок. Это заголовок, а не запрос Google. –

+0

Просто уменьшите spanWait за обновление. И, может быть, ре-фактор для spawnWait? – Catwood

ответ

0

Это вопросы невероятно расплывчатыми, Из того, что я могу собрать, вы хотите там быть какая-то обратная корреляция между количеством времени, пользователь был в игре, и время между нерестится. Есть миллион способов сделать это, и правильный ответ будет полностью зависеть от того поведения, которое вы хотите, чтобы игра выставлялась.

timeBetweenSpawns = minTime + max(defaultTime - (timeInGame*constant),0) 

Это (очень простой и обобщенный) код даст вам очень простой обратную зависимость между временем пребывания в игре и времени между элементами нерест. Вам нужно будет подумать о своем собственном решении и найти то, что лучше всего подходит для вашего проекта.

 Смежные вопросы

  • Нет связанных вопросов^_^