Migrando da v1.2 para a v1.3
Migrando da v1.2 para a v1.3
Na versão 1.3 do ct.js, um conceito de câmera foi implementado. Antigamente, o viewport era movido pela alteração dos parâmetros ct.room.x e ct.room.y. Agora eles são apenas de leitura, e o movimento do viewport é feito pela alteração dos parâmetros em ct.camera.
A câmera possui recursos adicionais como redimensionamento, rotação do viewport e adição do efeito de tremer a tela.
Também foi implementado o conceitode coordenadas de jogo e de coordenadas de UI. Em poucas palavras, "coordenadas de jogo" são as que você já usava antes — elas são para as coisas adicionadas no mundo do jogo —, enquanto que as "coordenadas de UI" são exclusivamente para as camadas de UI. Mais sobre isso pode ser encontrando aqui.
Então,
- em vez de
ct.room.x, use0para UI ect.camera.getTopLeftCorner()[0]para as coordenadas de jogo; - em vez de
ct.room.y, use0para UI ect.camera.getTopLeftCorner()[1]para as coordenadas de jogo; - em vez de
ct.viewWidth, usect.camera.widthpara UI ect.camera.getBoundingBox().widthpara as coordenadas de jogo; - em vez de
ct.viewHeight, usect.camera.heghtpara UI ect.camera.getBoundingBox().heghtpara as coordenadas de jogo.
Para combinações, como ct.room.x + ct.viewWidth, é melhor usa better as funções e parâmetros especiais da câmera. Por exemplo, ct.room.x + ct.viewWidth é ct.camera.width em coordenadas de UI e ct.camera.left em coordenadas de jogo (embora você precise usar ct.camera.getTopLeftCorner e ct.camera.getBottomLeftCorner quando estiver trabalhando com câmeras rotacionadas).
Alerta
Se você estiver fazendo UI, é melhor usar o alinhamento automático e camadas de UI, as quais são descritas aqui, pois elas são ferramentas mais poderosas quando operando com as coordenadas de tela.
Dica
Você deve considerar usar ct.camera.moveTo e ct.camera.teleportTo para mover a câmera. Leia sobre os efeitos aqui.
Dica
ct.viewWidth e ct.viewHeight ainda funcionam, mas estão obsoletos e refletem os valores de ct.camera.width e ct.camera.height. ct.view* será removido na próxima versão principal.
Além disso,
- use
ct.camera.followem vez dect.room.follow; - use
ct.camera.shiftXect.camera.shiftYem vez dect.room.followShiftXect.room.followShiftY; - use
ct.camera.driftem vez dect.room.followDrift; - use
ct.camera.borderXect.camera.borderYem vez dect.room.borderXect.camera.borderY; - use
ct.camera.borderX = ct.camera.borderY = null;em vez dect.room.center = true;.
Alterações nos módulos internos
ct.mouse e ct.touch agora tem métodos e parâmetros auxiliares, por exemplo, ct.mouse.xui e ct.mouse.yui, ct.touch.hoversUi. Consulte a documentação deles para uma lista completa de novos parâmetros.
