Ir al contenido
Descargar

Matemática y azar

Los ángulos van en grados: 0 = derecha, 90 = arriba, 180 = izquierda, 270 = abajo.

Función Qué hace Ejemplo
float angleTo(float targetX, float targetY) const Ángulo desde esta instancia hasta un punto. setDirection(angleTo(mouseX(), mouseY()));
float angleTo(const Entity& other) const Ángulo hasta otra instancia. angleTo(*player)
float distanceTo(float targetX, float targetY) const Distancia en píxeles hasta un punto. if (distanceTo(160, 90) < 8) ...
float distanceTo(const Entity& other) const Distancia hasta otra instancia. if (distanceTo(*player) < 40) ...
Función Qué hace Ejemplo
float lerp(float a, float b, float t) Mezcla de a hacia b: t = 0 da a, t = 1 da b. x = lerp(x, objetivo, 0.1f);
float approach(float current, float target, float step) Avanza de current hacia target como máximo step, sin pasarse. hspeed = approach(hspeed, 0, 0.2f);
int sign(float v) -1, 0 o 1, según el signo. if (hspeed != 0) scaleX = sign(hspeed);
float wrap(float v, float min, float max) Da la vuelta dentro del intervalo. wrap(370, 0, 360) = 10. x = wrap(x, 0, roomWidth());

Un vector 2D con x e y. La y crece hacia abajo, como en la pantalla.

Miembro Qué hace
Vec2{x, y} Crea un vector.
+, -, *, / (y +=, -=, *=, /=) Cuentas con vectores y números.
float length() const Longitud del vector.
Vec2 normalized() const El mismo vector con longitud 1.
static Vec2 fromAngle(float distance, float degrees) Vector con la longitud y el ángulo dados.
const Vec2 v = Vec2::fromAngle(4.0f, 45); // 4 píxeles en diagonal hacia arriba y a la derecha
hspeed = v.x;
vspeed = v.y;
Función Qué hace Ejemplo
float random(float a, float b) Número con decimales desde a hasta casi b. vspeed = random(0.8f, 1.6f);
int randomInt(int a, int b) Número entero de a a b, incluyendo los dos. int lado = randomInt(0, 3);
bool chance(float p) true con probabilidad p (0 = nunca, 1 = siempre). if (chance(0.25f)) ...
pick(a, b, ...) Elige al azar uno de los valores. Los tipos mezclados pasan al tipo común. pick(1, 5, 9)
void randomSeed(unsigned seed) Fija la semilla: la misma semilla repite los mismos resultados. randomSeed(42);

Mira Números al azar para ver ejemplos.