User Tools

Site Tools


Sidebar

hpl2:tutorials:forloop

"For" Loops

“For” loops are use to repeat something multiple times with a variable, or creates a loop. It is almost the same as the “While” loop.

A “For” loop has 3 parts to it, the counting variable and initial value, the loop condition, and the change in the variable's value. There are many different ways you can create “for” loops. Each parameter is seperated by a semicolon ( ; ). Here are some examples:

void OnStart() 
{  	
        for(int i = 0; i <4; i++)
              AddTimer("T"+i, 1.5 * i, "TimerFunction");   
}

Lets take this apart. “void OnStart()” is the location it is in, which happens when the level starts up. “for(int i = 0; i < 4; i++)” runs the loop body (in this case, the loop body adds a timer that will trigger “TimerFunction”) 4 times before the loop breaks, because integer “i” has to be less than 4, as stated in the loop condition.

If you didn't use the “for” loop, it would look like this:

void OnStart() 
{ 
	AddTimer("T0", 1.5, "TimerFunction");  
	AddTimer("T1", 3, "TimerFunction"); 
	AddTimer("T2", 4.5, "TimerFunction"); 
	AddTimer("T3", 6, "TimerFunction"); 
}

All the code above would do exactly the same thing for each other. You can think of the “for” loop as a shortcut. When you use the “for” loop in your script, don't be afraid to use it. You could always go back here and check out how to do it again. When using the “for” loop, you can change whatever value a parameter has when it's in the “for” loop. Use braces ({ }) when the loop's body exceeds one line. Also another tip is that you can use whatever variable you want for the “for” loop, so long that it doesn't interfere with an existing variable that could do stuff that you don't want to happen. Here is and example for how a “for” loop could vary:

void OnStart() 
{ 
	for (int x = 0; x <= 4; x += 2) 
	{  
		AddEntityCollideCallback("Player", "ScriptArea_"+x, true, 1); 
	} 
}

I also want to say that in the scripts I provided don't include the functions that could be created based on what I have in there, like a timer function and entity collide functions.

This wiki entry has been made by Kyle S. If you have any comments or need help with this, send me a private message on the Frictional Games Forum. (My name on there is Kyle)

- Edited by Xiphirx. Fixed errors in code and in text.

hpl2/tutorials/forloop.1311971664.txt.gz · Last modified: 2011/07/29 20:34 by xiphirx