Olá, gostaria que alguém me ajudasse nesse sistema de camera de um tutorial que eu vi, que é o seguinte, ele centraliza o personagem no meio da tela com uma variável x e uma y que tem valores fixos (sempre a metade do tamanho da tela).
Como podem ver na imagem acima, o personagem sempre fica no meio da tela.
Agora o passo seguinte é fazer o mapa se mexer de acordo com a direção que o player anda, porque apesar de ele estar em um ponto fixo na tela, que seria screenX e screenY, no mapa ele está em uma posição qualquer, worldX e worldY, as vezes até fora da tela, então o que tem que ser feito é isso, fazer o mapa se mexer, mas antes disso vem alguns outro passos como desenhar o mapa na tela.
Primeiro eu criei um array para armazenar as imagens que eu vou usar no mapa:
depois criei um método que ler um arquivo txt e converte ele para o mapa que eu desejo:
Essas variávels maxWorldCol e maxWorldRow são iguais a 50 que é o tamanho quanto horizontal tanto vertical de blocos no mapa.
Esse arquivo txt não seria na mais nada menos que os índices do array da primeira imagem:
Esse método que ler os arquivos txt, ler a primeira linha, transforma ela em um array de String, sendo cada caractere da linha um elemento do array e logo após, converte esses elementos em um int que são armazenados em uma variável int e em seguida armazenados em uma matriz (numTile):
Já com os dados do mapa, eu preciso desenhá-lo na tela, e para fazer isso vou usar um método chamado draw que está na classe do Mapa
e dentro de um while, eu consigo usar os dados do meu mapa para desenha-lo na tela, através da matriz numTile que é armazenada em uma variável int que é usada com índice do meu array de imagem, sabendo que essa variável tem valores de 0 a 5 e se for 0, desenharia grama, 1 desenharia parede, 2 água e assim por diante…
Outro coisa que acho importante mostrar é que quando eu aperto as teclas de movimento, meu personagem não se move pelas coordenadas da tela e sim com as do mapa:
E é aqui que começa a minha dúvida, como no eixo X e Y da tela o personagem vai ficar sempre centralizado, eu qria entender como ele consegue se mover no mapa com esses códigos
Eu já gravei esses códigos, mas não gosto só de gravar, gosto de entender também.