Categoría EVENT
La categoría EVENT contiene los puntos de entrada del árbol de nodos y los detectores de eventos del motor. Son los nodos que inician la ejecución o la desencadenan en respuesta a algo que ocurre en la escena.
Tres grupos
Puntos de entrada (Entry Points)
Nodos sin socket In. Son la raíz del árbol — el compilador genera un método Python separado por cada uno.
| Nodo | Cuándo ejecuta |
|---|---|
| On Start | Una sola vez al crear el componente |
| On Update | Cada frame |
Detectores de evento
Nodos con socket In que bifurcan la ejecución según si ocurrió un evento:
| Nodo | Tipo | Evento detectado |
|---|---|---|
| On Key Press | Branch (True/False) | Tecla presionada / sostenida / liberada |
| On Collision | Branch (Hit/None) | Colisión con otro objeto |
| On Mouse Move | Branch (Moving/Still) | Movimiento del cursor |
| On Timer | Branch (Elapsed/Waiting) | Cuenta atrás propia |
| On Property Change | Branch (Changed/Same) | Cambio de propiedad BGE |
Bus de mensajes
Par de nodos para comunicación entre objetos sin referencias directas:
| Nodo | Rol |
|---|---|
| On Message | Receptor — espera un mensaje con subject |
| Node Broadcast | Emisor — envía el mensaje a todos los receptores |
Cuándo usar cada uno
Inicio único → On Start
Cada frame → On Update
Input de teclado → On Key Press
Colisión física → On Collision
Movimiento del ratón → On Mouse Move
Evento periódico interno → On Timer
Reacción a propiedad BGE → On Property Change
Comunicación entre objetos → On Message + Node Broadcast
Múltiples entry points en el mismo árbol
Un árbol puede tener tanto On Start como On Update (y varios de cada tipo). El compilador genera un método separado por cada uno:
def start(self):
# → nodos conectados a On Start
def update(self):
# → nodos conectados a On Update
Todos los demás nodos (detectores, FLOW, AI…) deben estar conectados a uno de estos entry points para ejecutarse.
On Timer vs Delay (FLOW)
| On Timer | Delay (FLOW) |
|---|---|
| Punto de entrada propio | Requiere OnUpdate como raíz |
Countdown con deltaTime() |
Reloj absoluto getClockTime() |
| Expone socket Progress (0→1) | Sin progreso |
| Repeat por defecto = True | Repeat por defecto = False |
On Message vs sendMessage() nativo
Node Broadcast + On Message usan globalDict — funcionan entre componentes RNC. El sendMessage() nativo de Range usa el sistema de Logic Bricks y no es compatible con este bus.