DarwinBotsManual
Abrir la app EnglishEN

Lo que se ve (ref*)

Las sysvars ref* describen lo que tiene delante el ojo con foco: la firma de su ADN, su energía y su cuerpo, dónde está y cómo se mueve.

DirecciónSysvarTipoResumen
477.reffixedSentidoVale 1 si lo que estás viendo no se puede mover: un bot anclado con .fixpos o una forma quieta.
685.reftypeSentidoQué es lo que estás viendo: 0 si es un bot y 1 si es una forma (un obstáculo del escenario).
686.refmultiSentidoVale 1 si el bot que estás viendo es parte de un multibot, un organismo de varias células unidas por lazos.
687.refshellSentidoCuánto caparazón tiene el bot que estás viendo: el caparazón frena los disparos de veneno y de body.
688.refbodySentidoEl body del bot que estás viendo, de 0 a 32000: su tamaño, y lo que le podés sacar con un disparo de body.
689.refxposSentidoLa coordenada x de lo que estás viendo: junto con .refypos y el operador angle, sirve para apuntarle justo.
690.refyposSentidoLa coordenada y de lo que estás viendo: junto con .refxpos y el operador angle, sirve para apuntarle justo.
695.refvelscalarSentidoQué tan rápido se mueve lo que estás viendo respecto de vos, sin importar la dirección.
696.refvelsxSentidoCon qué velocidad se desplaza hacia tu izquierda lo que estás viendo: es .refveldx con el signo cambiado.
697.refveldxSentidoCon qué velocidad se desplaza de costado lo que estás viendo: positiva hacia tu derecha, negativa hacia tu izquierda.
698.refveldnSentidoLa velocidad con que se te acerca lo que estás viendo: es .refvel con el signo cambiado.
699.refvel .refvelupSentidoCon qué velocidad se aleja (positivo) o se acerca (negativo) lo que estás viendo, en la dirección en que mirás y relativa a la tuya.
701.refupSentidoCuántas veces escribe en .up el ADN del bot que estás viendo: una de las cifras de su firma, para reconocer especies.
702.refdnSentidoCuántas veces escribe en .dn el ADN del bot que estás viendo: una cifra de su firma de especie.
703.refsxSentidoCuántas veces escribe en .sx el ADN del bot que estás viendo: una cifra de su firma de especie.
704.refdxSentidoCuántas veces escribe en .dx el ADN del bot que estás viendo: una cifra de su firma de especie.
705.refaimdxSentidoCuántas veces escribe en .aimdx el ADN del bot que estás viendo: una cifra de su firma de especie.
706.refaimsxSentidoCuántas veces escribe en .aimsx el ADN del bot que estás viendo: una cifra de su firma de especie.
707.refshootSentidoCuántas veces escribe en .shoot el ADN del bot que estás viendo: si es mayor que 0, sabe disparar.
708.refeyeSentidoCuántas veces lee sus ojos el ADN del bot que estás viendo: la cifra de la firma más usada para reconocer a la propia especie.
709.refnrgSentidoLa energía del bot que estás viendo, de 0 a 32000: para elegir presas que valgan la pena o parejas bien alimentadas.
710.refageSentidoLa edad en ciclos del bot que estás viendo, hasta 32000: para reconocer recién nacidos.
711.refaimSentidoHacia dónde apunta el bot que estás viendo, en la misma escala que .aim: para saber si te está mirando.
712.reftieSentidoCuántas veces aparece .tie en el ADN del bot que estás viendo: si es mayor que 0, sabe tirar lazos.
713.refpoisonSentidoCuánto veneno de defensa (poison) tiene guardado el bot que estás viendo: dispararle puede devolverte veneno.
714.refvenomSentidoCuánto veneno de ataque (venom) tiene guardado el bot que estás viendo: con eso puede paralizarte.
715.refkillsSentidoCuántos bots mató el bot que estás viendo: una forma de reconocer a un depredador.

Los ojos (.eye5 y sus vecinos) solo dicen qué tan cerca hay algo. Para saber qué es, están las sysvars ref*: cada ciclo el motor copia en ellas datos del objeto que ve el ojo con foco, que es .eye5 salvo que lo cambies con .focuseye. Si ese ojo ve varias cosas, manda la más cercana.

Se agrupan en tres familias:

Las reglas son las mismas para todas. Llegan con un ciclo de atraso, como cualquier sentido. Se borran a 0 antes de reescribirse, así que si el ojo con foco no ve nada valen todas 0. Y también se llenan cuando chocás con otro bot, aunque no lo estés mirando.

La combinación más usada viene de Animal Minimalis, de Numsgil, en el Bestiario: si lo que ve no es de su especie, copia su movimiento para no perderlo y le dispara. Acá va condensada en un solo gen:

cond
*.eye5 0 >
*.refeye *.myeye !=
start
*.refveldx .dx store
*.refvel 30 add .up store
-1 .shoot store
stop

La visión completa está en Visión y el reconocimiento paso a paso, en Un bot que reconoce a su especie.