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.