ct.templates
ct.templates
Esse objeto nós permite criar e manipular novas Copies.
ct.templates.copy(template, x, y, exts)
Criar uma nova Copy a partir de um template (modelo) fornecido. O template deve ser do tipo string — o nome do template. Se x ou y é omitido, então eles serão definidos com o valor 0. Retorna a nova copy criada.
Objeto extensions pode ser usado para adicionar parâmetros que estarão disponíveis no evento OnCreate da Copy.
Observação
Por padrão, esse método coloca a copy criada na room principal atual, (ct.room). Se você quer criar uma copy em, digamos, uma room de UI que esteja empilhada no topo da sua room principal, veja o método abaixo ct.templates.copyIntoRoom.
Exemplo: Cria uma bala na posição atual da copy e a envia em uma direção específica
var bullet = ct.templates.copy('Bullet', this.x, this.y);
bullet.direction = this.direction;Exemplo: Criar uma nova copy sob o cursor ao clicar com o mouse
Você vai precisar de uma ação chamada Press que reage ao click do botão esquerdo do mouse. Leia mais sobre as ações aqui.
if (ct.actions.Press.down) {
ct.templates.copy('Fruit', ct.mouse.x, ct.mouse.y);
}ct.templates.copyIntoRoom(template, x, y, parentRoom, extensions)
Uma forma avançada de ct.templates.copy que coloca uma copy dentro de um parentRoom específico. Os outros parâmetros são iguais aos usados em ct.templates.copy.
Exemplo: Criar uma copy em uma room de camada de UI chamada de "UI_Layer" com parâmetros adicionais
var uiLayer = ct.rooms.list['UI_Layer'][0];
if (uiLayer) {
ct.templates.copy('UI_Message', 35, 65, uiLayer, {
message: 'Os seus guerreiros enfrentaram o inimigo!',
type: 'alert'
});
}ct.templates.each(func: Function)
Aplicar uma função em todas as copies ativas.
Exemplo: destrói todas as copies dentro de um raio de 150px
var me = this;
ct.templates.each(function () {
if (this !== me) { // não estamos tentando destruir nós mesmos, né?
if (ct.u.pdc(this.x, this.y, me.x, me.y) <= 150) {
this.kill = true;
}
}
});Dica
ct.u.pdc calcula a distância entres dois pontos. Esse e outras funções semelhantes podem ser encontradas aqui.
ct.templates.exists(copy) Novo na versão 1.3
Verifica se o parâmtero passado em uma copy que existe no mundo ct.js. Variáveis que retornam falso como undefined retornará false, assim como as copies destruídas; nas outras vezes, retronará true. Esse método também funciona com muitas das entidades PIXI, como por exemplo, PIXI.Text e PIXI.Graphics.
ct.templates.isCopy(obj) Novo na versão 1.5
Verifica se o objeto passado como parâmetro é uma copy ct.js. Retorna true se o objeto passado como parâmetro é uma copy; caso contrário, retorna false.
ct.templates.list['TemplateName']
Retorna um array com todas as copies existentes do template especificado.
Exemplo: determina a destruição de todas as Copies 'Bonus'
for (var bonus of ct.templates.list['Bonus']) {
bonus.kill = true;
}Isso também pode ser escrito da seguinte forma:
for (var bonus of ct.templates.list.Bonus) {
bonus.kill = true;
}ct.templates.withCopy(copy: Copy, func: Function)
Funciona da mesma forma que ct.templates.each, exceto que é apenas para a Copy especificada.
ct.templates.withTemplate(template: string, func: Function)
Funciona da mesma forma que ct.templates.each, exceto que a função é aplicada a cada copy do template especificado.
