Olá Adriano, tudo bem? Espero que sim!
Aqui está um exemplo de como você pode implementar a verificação de movimento nas laterais dentro da função podeSeMover:
function podeSeMover(x, y) {
if (x < 0 || x > 470 || y < 0 || y > 366) {
return false; // Não pode se mover para fora do cenário
}
// Aqui você pode adicionar outras condições para verificar se o ator pode se mover em determinadas posições específicas
return true; // Pode se mover
}
function movimentaAtor() {
if (keyIsDown(UP_ARROW)) {
if (podeSeMover(xAtor, yAtor - 3)) {
yAtor -= 3;
}
}
if (keyIsDown(DOWN_ARROW)) {
if (podeSeMover(xAtor, yAtor + 3)) {
yAtor += 3;
}
}
if (keyIsDown(LEFT_ARROW)) {
if (podeSeMover(xAtor - 3, yAtor)) {
xAtor -= 3;
}
}
if (keyIsDown(RIGHT_ARROW)) {
if (podeSeMover(xAtor + 3, yAtor)) {
xAtor += 3;
}
}
}
Nesse exemplo, a função podeSeMover recebe as coordenadas x e y do ator como argumentos e verifica se ele está dentro dos limites do cenário. Se o ator estiver fora dos limites, a função retorna false, indicando que ele não pode se mover. Caso contrário, a função retorna true, indicando que ele pode se mover.
Dentro da função movimentaAtor, antes de atualizar as coordenadas do ator, verificamos se ele pode se mover para a nova posição chamando a função podeSeMover com as coordenadas atualizadas. Se ele puder se mover, as coordenadas são atualizadas; caso contrário, o ator permanece na mesma posição.
Esse código deve permitir que o ator se mova dentro dos limites do cenário, evitando que ele saia para fora. Você também pode adicionar outras condições dentro da função podeSeMover para verificar se o ator pode se mover em posições específicas, se necessário.
Espero ter ajudado!
Caso tenha dúvidas, fico à disposição.
Abraços!