Guia de migração para o ct.js v2.0.
Guia de migração para o ct.js v2.0.
Alteração na propriedade rotation
das copies ou "Minhas copies giram como hélices"
Antigamente, a rotation
fazia proxy do parâmetro de mesmo nome do pixi.js', o qual era medido em radianos. Ele foi feito para preservar a compatibilidade com projetos mais antigos, aqueles que foram criados antes do surgimento da v1. Eleminamos esse proxy para uma melhor adequação ao comportamento do pixi.js e para remover incosistências inesperadas ao trabalhar com entidades ct.js e pixi.js.
Pixi.js tem uma propriedade angle
interna que é medida em graus, então:
- Em vez de usar
this.rotation
, usethis.angle
. this.angle
é sentido horário quando comparada com anterior,this.rotation
, que era no sentido anti-horário, entãothis.angle = 90;
apara para baixo, 180 — para a esquerda, 270 — para cima, 360 e 0 — para a direita.
Os Types agora são chamados de "Templates"
Sim.
É algo que eu, o criador do ct.js, queria alterar por uns impressionantes cinco anos. A maioria dos nomes em ct.js foram criados com um conhecimento pobre da língua ingles, e ao contrário das propriedades internas e coisas como "code injects" (os quais devem ser chamados "code injections"), "types" sãos coisas que cada usuário ct.js escreve diariamente.
Templates é uma palavra melhor para as entidades das quais as copies do ct.js são criadas, especialmente quando traduzindo o ct.js para outros idiomas, e também são mais neutras em termos de linguagem. Afinal, existem apenas seis typos em ct.js, e nenhum deles é um tipo antigo de ct.js.
"Templates" farão mais sentido quando o ct.js suportar templates baseados em classes diferentes de sprites animados simples: a ideia é permitir fazer botões, templates de painel e utilizar coisas legais como terreno com estrias. Embora tudo isso venha mais tarde, é melhor fazer pequenas transições agora – para facilitar migrações futuras.
Como isso afeta você e os seus projetos:
- Você agora terá que escrever
ct.templates...
em vez dect.types...
; - Ct.IDE substituirá
ct.types
porct.templates
uma vez que você abra um projeto que foi criado em uma versão mais antiga do ct.js, mas ainda existem alterações na API dect.templates
que estão listada abaixo.
ct.templates.exists
ct.templates.exists(copy)
foi renomeado paract.templates.valid(copy)
ct.templates.exists(typeName)
agora verifica se uma existem copies com um nome específico na room (ou nas rooms anexada/prefixada).
ct.templates.make
, ct.templates.copy
.
ct.templates.make
foi removida porque ninguém realmente a usava.
Agoroa existem dois métodos separadas para a criação de copies, são eles:
Perceba que os parâmetros se diferenciam um pouco em ct.templates.copyIntoRoom(type, x, y, container, exts)
comparado com o método anterior ct.templates.copy
.
ct.templates.copyIntoRoom
lançará um erro se container
não for definido. A separação em dois métodos é para fazer a criação da copy mais segura, à prova de falhas, e excluir situações como quando você passa ct.rooms.list['NonExistentRoomName'][0]
como um container e então você obtém uma copy dentro da room principal sem qualquer alerta.
ct.u.rotate
, ct.u.rotateRad
, ct.u.uiToGameCoord
, ct.u.gameToUiCoord
agora retorna um PIXI.Point
em vez de arrays
PIXI.Point
são objetos com duas propriedades, x
e y
e com mais alguns métodos úteis, tanto para copiá-los como manipular vetores, como a operação ponto por exemplo.
ct.camera.uiToGameCoord
, ct.camera.gameToUiCoord
, e todos os ct.camera.get(XY)Corner
fazem o mesmo assim como eles são dependentes desses métodos.
Observação
Os métodos ct.camera
com sufixo Corner internamente são dependentes de ct.camera.uiToGameCoord
ct.place
foi alterado para ser mais eficiente e fácil de usar
ct.place.occupied
,ct.place.free
agora funciona com copies e tiles, então você precisa apenas deles em de adicionar uma verificação adicional comct.place.tile
. Além disso, todas as funções rastreamento agora funcionam com tiles também.- O parâmetro
multiple
foi removido dect.place.meet
e dect.place.occupied
. Agora existem os métodosct.place.meetMultiple
ect.place.occupiedMultiple
, para tornar o código mais lefível. Você pode precisar reescrever algum código para fazê-lo funcionar com múltiplas copies outra vez. ct.place.tile
foi renomeado paract.place.tiles
, e é acompanhado dect.place.copies
.- Adicionalmente,
ct.place
agora suporta e respeita as máscaras de colisões dos tiles. Atualmente é de pouca utilidade com tilesets grandes, mas agora você pode ter tiles individuais com máscaras circulares e outras!
Veja a nova documentação sobre o ct.place em seu painel lateral do ct.js.
O ct.sound
padrão agora é um catmod (módulo cat)
Normalmente não causará nenhum problema, mas caso você tenha algum erro do ct.res sobre nenhum sistema de som, ative um dos catmods de som nas configurações do seu projeto.
ct.mouse
e ct.touch
agora são obsoletos em benefício de ct.pointer
Não causará nenhum problema imediato, mas consider usar o módulo ct.pointer
em seus projetos futuros. Ele cobre as funcionalidades de ct.mouse
e ct.touch
com uma API familiar, assim como suporta recursos adiconais como lendo a propriedade pressure que permite medir a pressão do toque, a posição da caneta e uma abstração sobre a API Pointer Lock.