Difference between revisions of "HPL3/Scripting/Scripting Guide/Timers"
Line 23: | Line 23: | ||
===Breakdown=== | ===Breakdown=== | ||
− | * We called the function and gave it three arguments: The internal name of the timer, the time | + | * We called the function and gave it three arguments: The internal name of the timer (<code>JumpVeryHigh</code>), the time in seconds (<code>5</code>) of the timer, and the function callback which will be called once the timer is done (<code>Timer_JumpVeryHigh</code>). |
− | * Our timer callback is called | + | * Our timer callback is called <code>Timer_JumpVeryHigh</code> and has one parameter called <code>asTimer</code> - this is the internal name of the timer. In our case, the internal name will be <code>JumpVeryHigh</code>. |
We can do more than just create a timer, we can remove timers as well, or check if a timer is already running. For example, if we enter this area, create a timer of 5 seconds. However, if a timer has already been created, we don’t need to create that timer again, right? So we can use Map_TimerExists for that. | We can do more than just create a timer, we can remove timers as well, or check if a timer is already running. For example, if we enter this area, create a timer of 5 seconds. However, if a timer has already been created, we don’t need to create that timer again, right? So we can use Map_TimerExists for that. |
Revision as of 22:20, 13 August 2020
Timers are set up to wait for a selected amount of time before executing code. It can be very useful if you want to wait a specified amount of time for something to happen in the level, such as intense countdown or to spawn / despawn particles in a dynamic way.
Creating Timers
In order to add timer to a map, we need to use the function Map_AddTimer
. Let's see an example:
////////////////////////////
// Run first time starting map
void OnStart()
{
Map_AddTimer("JumpVeryHigh", 5.0f, "Timer_JumpVeryHigh");
}
//...somewhere else in the code
void Timer_JumpVeryHigh(const tString&in asTimer)
{
MyHelper_MakeThePlayerJumpVeryHigh();
}
Breakdown
- We called the function and gave it three arguments: The internal name of the timer (
JumpVeryHigh
), the time in seconds (5
) of the timer, and the function callback which will be called once the timer is done (Timer_JumpVeryHigh
). - Our timer callback is called
Timer_JumpVeryHigh
and has one parameter calledasTimer
- this is the internal name of the timer. In our case, the internal name will beJumpVeryHigh
.
We can do more than just create a timer, we can remove timers as well, or check if a timer is already running. For example, if we enter this area, create a timer of 5 seconds. However, if a timer has already been created, we don’t need to create that timer again, right? So we can use Map_TimerExists for that.
Timers are very easy to use as you can see, and it will help us to understand the concept of Sequences in the next episode.