Я делаю игру, которая вычисляет скорость нажатий, которые пользователь делает за отведенное время. Мне удалось создать некоторый код ставки.
rate++;
if (rate == reset_the_timer_lim) {
timer_limit--;
rate = 0;
//print(counter_of_presses);
//okay print the amt of button presses button/rate
//so we get a number of keypresses in alotted time unit
//int calc the rate
for (int x = 0; x < 2; x++)
{
rate_nums[x] = counter_of_presses;
print(rate_nums.ToString());
}
}
Вот код нажатия кнопки
if (Input.GetKeyDown (KeyCode.Space))
{
counter_of_presses++;
counter_press.text = counter_of_presses.ToString();
}
У меня есть отдельный счетчик (ставка), который считает до другого числа.
Так, например,
Если я установил reset_the_timer_lim = 25, скорость отсчитывается до 25 и сбрасывается в ноль. Затем он принимает количество нажатий (код Input.getKey (2-й блок)) и пытается сохранить их в массиве. Вычитает окончательную ставку минус начальную ставку.
Однако, когда я запускаю этот код, оба элемента в массиве совпадают. Он не ждет, пока скорость сбрасывается, и я не уверен, куда идти дальше.
РЕДАКТИРОВАТЬ 5/12/18
public class press_game : MonoBehaviour {
public int timer_limit = 120;
private int rate;
public GameObject player_heart;
//public GameObject camera_back_up;
public int reset_the_timer_lim;
private int counter_of_presses;
public int amt_of_presses_before_end;
public Text show_time;
public Text counter_press;
public Text get_it_2_here;
public int[] rate_nums;
private float sum, sum2;
public float amt_to_widen_heart, amt_to_widen_cam;
public GameObject a1a, a2a, a3a, a4a, a5a, a6a, a7a, a8a, a9a, a10a, a11a, a12a, a13a, a14a, a15a, a16a;
// Use this for initialization
void Start () {
rate_nums = new int[2];
get_it_2_here.text = amt_of_presses_before_end.ToString ();
//a1a.SetActive(true);
}
// Update is called once per frame
void Update () {
sum = sum + amt_to_widen_heart;
sum2 = sum2 + amt_to_widen_cam;
rate++;
if (rate == reset_the_timer_lim) {
timer_limit--;
rate = 0;
//print(counter_of_presses);
//okay print the amt of button presses button/rate
//so we get a number of keypresses in alotted time unit
//int calc the rate
for (int x = 0; x < 2; x++)
{
rate_nums[x] = counter_of_presses;
print(rate_nums.ToString());
}
}
//print (timer_limit);
show_time.text = timer_limit.ToString ();
//get_it_2_here.text =
if (timer_limit < 0) {
show_time.text = "Out of time!!";
//counter_of_presses = 0;
counter_press.text = "OUT OF TIME!";
if(counter_of_presses < amt_of_presses_before_end){
print("You have lost the game!");
//counter_of_presses = 0;
}
else{
print ("You have won this game!");
//counter_of_presses = 0;
}
}
if (Input.GetKeyDown (KeyCode.Space)) {
counter_of_presses++;
counter_press.text = counter_of_presses.ToString();
player_heart.transform.localScale += new Vector3(transform.localScale.x + sum, transform.localScale.y + sum, transform.localScale.z);
//camera_back_up.transform.localScale += new Vector3(transform.localScale.x + sum2, transform.localScale.y + sum2, transform.localScale.z);
}
}
}