RandomNumberGenerator

A class for generating pseudo-random numbers.

RandomNumberGenerator is a class for generating pseudo-random numbers. It currently uses url=http://www.pcg-random.org/PCG32/url. Note: 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:

More...

Members

Aliases

BaseClasses
alias BaseClasses = AliasSeq!(typeof(_GODOT_base), typeof(_GODOT_base).BaseClasses)
Undocumented in source.

Functions

getSeed
long getSeed()
getState
long getState()
opAssign
typeof(null) opAssign(typeof(null) n)
opEquals
bool opEquals(RandomNumberGenerator other)
opEquals
bool opEquals(typeof(null) n)
randf
double randf()

Generates a pseudo-random float between 0.0 and 1.0 (inclusive).

randfRange
double randfRange(double from, double to)

Generates a pseudo-random float between from and to (inclusive).

randfn
double randfn(double mean, double deviation)

Generates a url=https://en.wikipedia.org/wiki/Normal_distributionnormally-distributed/url pseudo-random number, using Box-Muller transform with the specified mean and a standard deviation. This is also called Gaussian distribution.

randi
long randi()

Generates a pseudo-random 32-bit unsigned integer between 0 and 4294967295 (inclusive).

randiRange
long randiRange(long from, long to)

Generates a pseudo-random 32-bit signed integer between from and to (inclusive).

randomize
void randomize()

Setups a time-based seed to generator.

setSeed
void setSeed(long seed)
setState
void setState(long state)
toHash
size_t toHash()

Mixins

__anonymous
mixin baseCasts
Undocumented in source.

Properties

seed
long seed [@property getter]
long seed [@property setter]

Initializes the random number generator state based on the given seed value. A given seed will give a reproducible sequence of pseudo-random numbers. Note: 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. Note: Setting this property produces a side effect of changing the internal state, so make sure to initialize the seed before modifying the state:

state
long state [@property getter]
long state [@property setter]

The current state of the random number generator. Save and restore this property to restore the generator to a previous state:

Static functions

_new
RandomNumberGenerator _new()

Construct a new instance of RandomNumberGenerator. Note: use memnew!RandomNumberGenerator instead.

Static variables

_classBindingInitialized
bool _classBindingInitialized;
Undocumented in source.

Structs

GDNativeClassBinding
struct GDNativeClassBinding
Undocumented in source.

Unions

__anonymous
union __anonymous
Undocumented in source.

Variables

_GODOT_internal_name
enum string _GODOT_internal_name;
Undocumented in source.

Mixed In Members

From mixin baseCasts

as
inout(To) as()
Undocumented in source. Be warned that the author may not have intended to support it.
as
inout(To) as()
Undocumented in source. Be warned that the author may not have intended to support it.
as
inout(ToRef) as()
Undocumented in source. Be warned that the author may not have intended to support it.
opCast
template opCast(To)
Undocumented in source.
opCast
template opCast(To)
Undocumented in source.
opCast
template opCast(ToRef)
Undocumented in source.
opCast
void* opCast()
Undocumented in source. Be warned that the author may not have intended to support it.
opCast
godot_object opCast()
Undocumented in source. Be warned that the author may not have intended to support it.
opCast
bool opCast()
Undocumented in source. Be warned that the author may not have intended to support it.

Detailed Description

var rng = RandomNumberGenerator.new() func _ready(): rng.randomize() var my_random_number = rng.randf_range(-10.0, 10.0)

Note: The default values of seed and state properties are pseudo-random, and changes when calling randomize. The 0 value documented here is a placeholder, and not the actual default seed.

Meta