Ordem de eventos em ct.js
Ordem de eventos em ct.js
Esses eventos são sempre executados na seguinte ordem:
- A biblioteca principal do ct.js é executada;
- Os módulos são inicializados;
- Os scripts personalizados adicionados nas configurações do projeto são executados;
- O evento
oncreate
da room é invocado, o qual é emitido quando um usuário inicia um jogo ou alterna para uma nova room; oncreate
é invocado para cada;- Então o loop principal do jogo começa:
- O evento
onstep
é invocado para todas as copies na room; - O evento
onstep
da room atual é invocado; ondestroy
é invocado para todas as copies que foram marcadas para morrer com a propriedadekill
;- Todas as copies são reorganizadas;
ondraw
é invocado para todas as copies;ondraw
é invocado para um room;- Os eventos de entrada são apagados. Aguardando por uma nova interação do loop de jogo.
- O evento
- Quando o usuário alternar para uma nova room, um evento
onleave
é invocado para a room anterior.
Ordem de execução com a injeção dos módulos
Na inicialização:
- A biblioteca principal do ct.js é executada.
load.js
.- Os módulos são inicializados.
- Os scripts personalizados adicionados nas configurações do projeto são executados;
resload.js
é executado quando todos os assets foram carregados.start.js
— Invocado logo antes do game ser iniciado (nenhuma room foi criada ainda).- A primeira room é criada.
- O OnCreate da room é invocado.
roomoncreate.js
.switch.js
é invocado.ct.camera
é devidamente posicionada.
Na transição de uma room para outra:
- O evento OnLeave da room anterior é invocado.
roomonleave.js
.- OnCreate da nova room é invocado.
- As copies são criadas aqui, com todos os seus eventos e injeções.
roomoncreate.js
switch.js
ct.camera
é devidamente posicionada.
A cada frame:
beforeframe.js
é executado em contexto global.beforestep.js
withthis
being the current type.- Copies' own OnStep is called.
afterstep.js
comthis
sendo o tipo atual.beforeroomstep.js
comthis
sendo uma room atual (pode ser diferente dect.room
)- O OnStep da room que o contém é invocado.
afterroomstep.js
comthis
sendo uma room atual (pode ser diferente dect.room
)- As copies são destruídas com com os seus eventos OnDestroy.
- A posição da camera é atualizada.
beforedraw.js
comthis
sendo o tipo atual.- O OnDraw das copies que o contém é invocado.
afterdraw.js
comthis
sendo o tipo atual.beforeroomdraw.js
comthis
sendo uma room atual (pode ser diferente dect.room
)- OnDraw da room que o contém é invocado.
afterroomdraw.js
comthis
sendo uma room atual (pode ser diferente dect.room
)afterframe.js
é invocado ante de irmos para o próximo frame.
Na criação da copy:
onbeforecreate.js
- OnCreate das copies que o contém é invocado.
oncreate.js
Na exclusão da copy:
ondestroy.js
- O evento OnDestroy das copies que o contém é invocado.