.setaim
Gira al bot hasta un rumbo absoluto: escribís hacia dónde querés que apunte y el motor lo pone ahí en el mismo ciclo.
Datos
- Dirección
- 19
- Nombre
.setaim- Tipo
- Comando: el bot la escribe y el motor la lee y, en general, la consume
- Grupo
- Movimiento
- Quién la escribe
- Tu ADN. El motor la siembra al nacer con el rumbo del bot. En el modo Player Bot, el rumbo hacia el ratón pisa lo que escribió tu ADN.
- Cuándo se borra
- No la borra: en la fase de movimiento, después de girar, el motor le copia el rumbo actual.
- Rango
- −32000 a 32000; se toma el resto de dividir por 1256. Solo gira si difiere del rumbo actual.
- Mutaciones
- la eligen como destino de un store
.setaim es el giro absoluto: escribís el rumbo que querés, en la misma escala que .aim (0 a la derecha de la pantalla, 314 arriba, 1256 una vuelta), y el bot queda apuntando ahí al final del ciclo, por grande que sea el giro. Cualquier número sirve: se toma su resto de dividir por 1256, así que -314 es 942 y 1570 es 314. El giro cuesta energía, pero no según el ángulo recorrido sino según el número que escribiste: 1200 .setaim cuesta mucho más que -56 .setaim, aunque los dos dejan el mismo rumbo (ver Física).
El motor no la borra a 0: después de girar al bot le copia el rumbo actual. Por eso *.setaim siempre se puede leer como el rumbo del bot, y en el primer ciclo de vida es más fiable que *.aim, que todavía vale 0.
El uso clásico es girar relativo al rumbo actual sumándole algo, o apuntar a lo que ve combinando .refxpos y .refypos con su posición. Este bot gira de a 100 por ciclo leyendo el rumbo en la propia .setaim:
cond
start
*.setaim 100 add .setaim store
stop