mirror of
				https://github.com/godotengine/godot.git
				synced 2025-10-31 05:31:01 +00:00 
			
		
		
		
	 35e6070a35
			
		
	
	
		35e6070a35
		
			
		
	
	
	
	
		
			
			It's non-deterministic so it's better to show a fixed value like 0 instead of having it potentially change whenever `randomize()` is called. Fixes #43317.
		
			
				
	
	
		
			85 lines
		
	
	
	
		
			3.4 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
	
		
			3.4 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
| <?xml version="1.0" encoding="UTF-8" ?>
 | |
| <class name="RandomNumberGenerator" inherits="Reference" version="4.0">
 | |
| 	<brief_description>
 | |
| 		A class for generating pseudo-random numbers.
 | |
| 	</brief_description>
 | |
| 	<description>
 | |
| 		RandomNumberGenerator is a class for generating pseudo-random numbers. It currently uses [url=http://www.pcg-random.org/]PCG32[/url].
 | |
| 		[b]Note:[/b] The underlying algorithm is an implementation detail. As a result, it should not be depended upon for reproducible random streams across Godot versions.
 | |
| 		To generate a random float number (within a given range) based on a time-dependant seed:
 | |
| 		[codeblock]
 | |
| 		var rng = RandomNumberGenerator.new()
 | |
| 		func _ready():
 | |
| 		    rng.randomize()
 | |
| 		    var my_random_number = rng.randf_range(-10.0, 10.0)
 | |
| 		[/codeblock]
 | |
| 	</description>
 | |
| 	<tutorials>
 | |
| 		<link title="Random number generation">https://docs.godotengine.org/en/latest/tutorials/math/random_number_generation.html</link>
 | |
| 	</tutorials>
 | |
| 	<methods>
 | |
| 		<method name="randf">
 | |
| 			<return type="float">
 | |
| 			</return>
 | |
| 			<description>
 | |
| 				Generates a pseudo-random float between [code]0.0[/code] and [code]1.0[/code] (inclusive).
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="randf_range">
 | |
| 			<return type="float">
 | |
| 			</return>
 | |
| 			<argument index="0" name="from" type="float">
 | |
| 			</argument>
 | |
| 			<argument index="1" name="to" type="float">
 | |
| 			</argument>
 | |
| 			<description>
 | |
| 				Generates a pseudo-random float between [code]from[/code] and [code]to[/code] (inclusive).
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="randfn">
 | |
| 			<return type="float">
 | |
| 			</return>
 | |
| 			<argument index="0" name="mean" type="float" default="0.0">
 | |
| 			</argument>
 | |
| 			<argument index="1" name="deviation" type="float" default="1.0">
 | |
| 			</argument>
 | |
| 			<description>
 | |
| 				Generates a [url=https://en.wikipedia.org/wiki/Normal_distribution]normally-distributed[/url] pseudo-random number, using Box-Muller transform with the specified [code]mean[/code] and a standard [code]deviation[/code]. This is also called Gaussian distribution.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="randi">
 | |
| 			<return type="int">
 | |
| 			</return>
 | |
| 			<description>
 | |
| 				Generates a pseudo-random 32-bit unsigned integer between [code]0[/code] and [code]4294967295[/code] (inclusive).
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="randi_range">
 | |
| 			<return type="int">
 | |
| 			</return>
 | |
| 			<argument index="0" name="from" type="int">
 | |
| 			</argument>
 | |
| 			<argument index="1" name="to" type="int">
 | |
| 			</argument>
 | |
| 			<description>
 | |
| 				Generates a pseudo-random 32-bit signed integer between [code]from[/code] and [code]to[/code] (inclusive).
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="randomize">
 | |
| 			<return type="void">
 | |
| 			</return>
 | |
| 			<description>
 | |
| 				Setups a time-based seed to generator.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 	</methods>
 | |
| 	<members>
 | |
| 		<member name="seed" type="int" setter="set_seed" getter="get_seed" default="0">
 | |
| 			The seed used by the random number generator. A given seed will give a reproducible sequence of pseudo-random numbers.
 | |
| 			[b]Note:[/b] The RNG does not have an avalanche effect, and can output similar random streams given similar seeds. Consider using a hash function to improve your seed quality if they're sourced externally.
 | |
| 			[b]Note:[/b] The default value of this property is pseudo-random, and changes when calling [method randomize]. The [code]0[/code] value documented here is a placeholder, and not the actual default seed.
 | |
| 		</member>
 | |
| 	</members>
 | |
| 	<constants>
 | |
| 	</constants>
 | |
| </class>
 |