Pular para o conteúdo

A classe Copy


A classe Copy

Copies são entidades que interagem uma com as outras na tela, o que impulsiona a lógica do jogo. Elas são derividas da classe AnimatedSprite do Pixi, você pode encontrar muito mais parâmetrosopen in new window no site de documentação deles.

Dica

Para criar e encontrar as copies, veja a referência em ct.templates.

Movendo as Copies

Cada Copy tem esses parâmetros para movimento:

PropriedadeTipoDescrição
x, yNumberLocalzação da Copy, pelos eixos X e Y (eixo horizontal and vertical).
xprev, yprevNumberA localização da Copy no frame anterior.
xstart, ystartNumberAs coordenadas na qual a copy foi criada.
speedNumberVelocidade de movimento (ou o tmanaho do vetor [hspeed; vspeed]).
hspeed, vspeedNumberVelocidade horizontal e vertical.
directionNumberDireção do movimento (de 0 até 360, indo para a direita no sentido horário).
gravityNumberForça da gravidade, como uma quantidade de speed adicionada a cada frame.
gravityDirNumberDireção da gravidade (de 0 até 360, o padrão é 90).

Você também pode chamar this.addSpeed para adicionar velocidade ao vetor de uma Copy em uma dada direção.

this.addSpeed(speed, dir);

Para atualmente mover uma copy, você deve chamar this.move(); no código em OnStep da sua copy (ele é incluído em cada Template por padrão). O sistema padrão de movimento já leva em consideração o ct.delta no cálculo, então ele moverá na mesma velocidade a cada taxa de quadros.

Manipulando a aparência das Copies

Existe um número de parâmetros que podem ser alterados:

PropriedadeTipoDescrição
alphaNumberA opacidade da copy. 0 faz a copy ficar invisível, 1 é o valor padrão (completamente opaco). Qualquer valor que esteja entre esse intervalo fará com que a transparência seja alterada de forma gradual.
blendModePIXI.BLEND_MODES (Number)Como misturar a copy com o resto do mundo. O padrão é PIXI.BLEND_MODES.NORMAL. Mas pode ser um destes:
  • PIXI.BLEND_MODES.NORMAL
  • PIXI.BLEND_MODES.ADD
  • PIXI.BLEND_MODES.MULTIPLY
  • PIXI.BLEND_MODES.SCREEN
depthNumberDefine a profundidade da copy na camada de desenho. Por exemplo, uma copy com o valor 1, está acima de outra com o valor 0. O valor padrão é 0.
angleNumberA rotação da copy em graus no intervalo de 0 até 360, começando da direita e indo no sentido horário.
scalePIXI.ObservablePointO fator de escala do objeto. Você pode atribuir simples valor (this.scale = 0.5;) para um redimensionamento uniforme ou acessar as componentes x e y compounds (this.scale.x = 0.5;).
texStringO nome de uma textura que deve ser usada pelo ct.js texture. Definindo this.tex = 'NewTexture'; alterará a textura exibida e resetará a animação.
tintNumberA tonalidade aplicada ao sprite. Esse é um valor em hexadecimal. Um valor de 0xFFFFFF removerá qualquer efeito de tonalidade. As cores são as mesmas que no CSS, mas com o 0x em vez de #, por exemplo, 0xFF0000 é vermelho, 0x00FFFF é cyan, etc.
visiblebooleanaA visibilidade do objeto (true or false).

Animação

PropriedadeTipoDescrição
animationSpeedNumberVelocidade da animação. Quanto maior o valor, mais rápido será, e quanto menor o valor, mais lento será.
currentFrameNumberApenas de leitura. O índice atual do frame sendo renderizado. Você deve alterá-lo com os métodos gotoAndPlay e gotoAndStop.
totalFramesNumberApenas de leitura. O número total de frames na Copy.

Métodos:

copy.gotoAndPlay(frameIndex)

Vai para um frame específico e inicia a animação.

copy.gotoAndStop(frameIndex)

Para a animação e vai para um frame específico.

copy.play()

Inicia a animação.

copy.stop()

Para a animação.

Deletando Copies (Com a propriedade this.kill)

Para deletar uma Copy, simplesmente defina a propriedade kill para true.

Exemplo: deleta uma Copy, se a barra de vida está esgotada

if (this.health <= 0) {
    this.kill = true;
}

Observação

Mesmo que uma copy tenha a sua propriedade definida para true, o código em OnStep ainda será executado até o fim. As Copies são logicamente deletadas entres as camadas de OnStep e Draw.

Diversos

copy.getRoom()

Retorna a room que atualmente contém a copy. Isso é útil quando se trabalha com diferentes rooms em uma fase. Retorna uma instância da classe Room.

copy.template

O nome do template no qual uma Copy foi criada (o valor retornado é do tipo string).