- Home /
How to make a loop for PowerUps/Bonus
Hello, i'm making a classic game(looks like pong) and i'm trying to make some objects move from time to time, and some power ups falling, i first used to check if a score number is achieved, let a powerup go, but i can't do this forever,
So what do you suggest to make such things happen from time to time, but in an infinite loop?!
Thank you for checking my question, i'm looking forward for your answers!
Answer by MikeNewall · May 24, 2013 at 06:47 PM
You could use InvokeRepeating if you want the length of time between each powerup drop to be the same.
void Start()
{
InvokeRepeating("SpawnPowerup()", 10, 10);
}
If you want the time between them to be random then you could use a timer like this:
using UnityEngine;
public class RandomTimer : MonoBehaviour
{
private float timer;
void Start()
{
timer = Random.Range(5,10);
}
void Update()
{
if(timer > 0) timer -= Time.deltaTime;
else
{
// spawn your powerup here
Debug.Log ("Spawned powerup!");
// Set the timer to a new random length
timer = Random.Range(5,10);
}
}
}
Or you could use a coroutine:
using UnityEngine;
using System.Collections;
public class RandomTimer : MonoBehaviour
{
void Start()
{
StartCoroutine(SpawnPowerup());
}
IEnumerator SpawnPowerup()
{
while (true)
{
yield return new WaitForSeconds(Random.Range(5, 10));
// Spawn your powerup here
Debug.Log ("Spawned powerup!");
}
}
}
Answer by SohaibTheGame · May 25, 2013 at 09:13 AM
The Invoke was enough for the powerUps, but what should i do for a period loop?
I mean i have some objects that o want them to move every amount of time but for like 5 or 6 seconds.
in C# i had this idea
if (DateTime.Now.Seconds > 5 && DateTime.Now.Seconds < 10) { MoveObjects(); }
How can this be done in Javascript? is it a good code that i depend on?
Your answer
Follow this Question
Related Questions
Visual timer? Like CUT THE ROPE 2 Answers
Make enemies spawn faster with timer? (C#) 2 Answers
Adding a timer to spawner 2 Answers
Creating a script to randomize events. 1 Answer
Pick random song at the biggining and then loop it the rest of the game 1 Answer