Já viram qual a arte dessa semana?Exposição dos Artistas #8
17 Respostas   839 Visualizações
0 Membros e 1 Visitante estão vendo este tópico.
Dun! Assim, com evento tem. Tu faz uma primeira página deste evento-inimigo para ficar em processo paralelo, calculando a distancia dele em relação ao personagem. Uma maneira fácil de fazer isso seria subtrair a coordenada X do personagem da coordenada X do inimigo, assim tu teria a distância entre eles no eixo X (horizontalmente). Converte o valor obtido para um número positivo e verifica se está abaixo da distância que tu deseja. Se estiver, tu faz o mesmo processo, porém no eixo Y (verticalmente). Se também estiver abaixo da distância em tiles que deseja, tu ativa uma Switch Local que ativa a página seguinte do evento, que faz com que ele persiga o personagem.Por plugin o trabalho de sua parte é menor, obviamente. Geralmente ele só pede a definição da distância. O que achei foi este, mas não testei. Entretanto seria bom tu tentar fazer isto por eventos, ainda que seja simplesmente pela ludicidade da atividade.
Nessa parte:''Tu faz uma primeira página deste evento-inimigo para ficar em processo paralelo''.Eu crio esse evento inimigo na aba ''Eventos Comuns'' ou em um evento normal?
Citação de: Nefastor em 01/09/2017 às 08:32Nessa parte:''Tu faz uma primeira página deste evento-inimigo para ficar em processo paralelo''.Eu crio esse evento inimigo na aba ''Eventos Comuns'' ou em um evento normal?Considerando que não há como criar páginas nos eventos comuns... Eu pensei em tu fazendo cada programação no evento do inimigo em específico ao invés de uma para todos inimigos, assim tu poderia variar a área de visão de cada um e não é uma programação muito longa, então acredito valer mais a pena.
Math.abs($gameVariables.value(n));
Então, ao fim do cálculo das posições, se tudo tiver dado certo, você irá ativar a Switch Local A do próprio evento. Aí, na próxima página, tu faz ela para ser ativada somente se esta Switch Local estiver ON, e coloca o início para ser automático (caso queira bloquear o movimento do jogador) ou em processo paralelo (caso queira permitir que o jogador continue se movimentando). E nesta página fazer os acontecimentos.Citação de: Nefastor em 01/09/2017 às 09:30Tá, mas de onde vêm essa variável "Área de Visão" que tu colocou na condição? Se o evento for só isso, não há nada atribuindo à ela um valor, logo ela sempre será zero e nunca vai realizar a primeira condição.Antes desta parte tu deve:1 - Colocar o valor de uma variável A para ser igual à coordenada X da posição do inimigo no mapa;2 - Colocar a variável B para ser igual à coordenada X do jogador no mapa;3 - Subtrair a variável A - variável B;4 - Converter a variável A para um valor absoluto. Isto pois, se o X do personagem for maior do que o X do inimigo, o resultado da subtração será negativo. Como distância não pode ser negativa, convertemos o valor para absoluto para podermos utilizá-lo na condição usando a expressãoCódigo: [Selecionar]Math.abs($gameVariables.value(n));Onde 'n' é o ID da variável A. Nesta parte tu pode até ter um pouco mais de dificuldade mesmo, mas tenta reproduzir até aqui e vê se está funcionando.
[...]Aqui como coloquei o evento agora:
Citação de: Nefastor em 01/09/2017 às 10:44[...]Aqui como coloquei o evento agora:Mas como a variável Inimigo pode ser igual a 12 se você não definiu ela para valor nenhum antes da condição. Você deve atribuir à ela o valor da coordenada antes de verificar se é igual a 12. Para isto, utilize o comando por eventos Controle de Variável. No campo Operando, marque Dados do Jogo e vá em Character (ou Personagem, não sei como está em português) e lá estará Mapa X, que é o valor da coordenada X no mapa.Aconselho a dar uma olhada nestes tutoriais também.
Exato. Você fez o segundo passo na enumeração que te passei. Faça o mesmo agora com a coordenada do inimigo, subtraia um do outro e a expressão é para ser usada assim:Spoiler[close]Após isso, aí sim, virá uma condição que verifica se a variável possui um valor menor ou igual à distância que tu quer. Lembrando que, até aqui, estamos calculando a distância horizontal somente. Depois vamos repetir o processo para calcular a vertical também.