🤔 Para Refletir : "Mais vale um jogo completo na mão do que dois projetos voando." - FL

Carros no RPG maker mv

Membro Membro
Postagens
5
Bravecoins
28
Olá guerreiros! Estou fazendo um projeto para a faculdade que é um jogo educativo e estou usando o rpg maker mv. Só gostaria de uma ajuda caso alguém possa me ajudar. Procurei na internet em tutorias tentei algumas gambiarras mas não consegui, fazer um sprite de carro andar em linha reta automaticamente.
Existe alguma maneira de colocar aqueles carros do tileset andar sozinho? não quero entrar no carro nem dirigi-lo, apenas que meu personagem veja o carro saindo.
Ficarei muito grato por qualquer dica, obrigado.
 
Tente colocar a imagem carro como charset ou character para utilizar em 1 evento na engine em vez de vários eventos para cada parte do carro dentro do arquivo Tileset. Não utilizo o RMMV, mas imagino que seja mesmo processo dos anteriores.
 
Última edição:
Vamos fazer uma iteração no qual percorre por todos os eventos do mapa, filtrando aqueles que serão representados por carros e, na sequência, chamar a ação para que ele dê um passo para frente.
Usaremos uma solução elegante com JavaScript para implementar o sistema.

  1. Crie o(s) evento(s) do carro
    Vamos usar uma malícia no qual todos os carros devem ter um prefixo no nome do evento. Neste caso, usaremos o $, mas pode ser qualquer caractere ou qualquer prefixo.
    1693369559388.png
  2. Crie um evento controlador
    Este evento será apenas um controlador, sem gráfico e colocado em uma posição inacessível aos personagens. Será um processo paralelo que rodará um bloco de código em JS (Comando Script). Sua responsabilidade será apenas filtrar e executar a ação para mover os carros para frente.

    Javascript:
    $gameMap.events()
          .filter(ev => ev.event().name[0] === '$')
          .forEach(ev => {
              if (!ev.isMoving())
                  ev.moveStraight(ev.direction());
          });
Linha 1: A variável global $gameMap recebe a instância do mapa atual. A função events() entrega um array com todos os eventos do mapa.

Linha 2: A função filter() vem de Array.prototype.filter, que faz o filtro do array (em nosso caso, dos eventos do mapa) e entrega um novo conjunto de eventos de acordo com o predicado dado por argumento. O predicado que definimos aqui está em ev.event().name[0] === '$'. Ele vai testar se o primeiro caractere do nome do evento que definimos lá no editor começa com aquele mesmo prefixo que definimos. Se a condição for verdadeira, o evento é inserido a esta nova lista.

Linha 3 a 6: Após o conjunto filtrado, em cima dele mesmo, faremos a função forEach. A função vai percorrer por esta nova lista onde serão executadas instruções de acordo com a callback dada por argumento. Em nosso caso, a gente fez um teste que verifica se o evento não está se movendo. Caso a condição estiver satisfeita, a função moveStraight() é chamada para que o evento se mova para uma direção específica dada por argumento, onde chamamos ev.direction() para receber a direção atual do evento, indicando que queremos que ele ande em linha reta.
 
Obrigado Pessoal pelo apoio! DadoCWB, baixei teu game farofa do gato, e gostaria de saber como tu fez aqueles carros se moverem daquele modo? Valeu.

Cara, eu sou meio vidrado no que eu mesmo chamo de "objetos inteligentes". Basicamente eu trato o carro como um evento que reconhece o espaço a seu redor e com base em alguns critérios toma algumas decisões, como por exemplo a de "mudar de direção". Eu fiz isso no MZ e usei programação por script + programação por eventos. Eu suspeito que no MV funcione também, mas tem algumas coisas que você tem que levar em consideração antes:

Quantidade de carros que vão se movimentar ao mesmo tempo. Como você pode ver no meu projeto tem muitos carros, mas isso tem custo em desempenho de máquina que em computadores modestos, como o meu, pode ser um problema. Dependendo da máquina que vai rodar e da quantidade de carros, existe meios mais simples de fazer.

O que precisamente os carros de seu projeto fazem? Você quer simular um transito de forma fidedigna? Do tipo que pára no semáforo e tal?

Qual o seu domínio do RPG MAKER MV? Você manja bem de programação por eventos? Você programa scripts?
 
Cara, eu sou meio vidrado no que eu mesmo chamo de "objetos inteligentes". Basicamente eu trato o carro como um evento que reconhece o espaço a seu redor e com base em alguns critérios toma algumas decisões, como por exemplo a de "mudar de direção". Eu fiz isso no MZ e usei programação por script + programação por eventos. Eu suspeito que no MV funcione também, mas tem algumas coisas que você tem que levar em consideração antes:

Quantidade de carros que vão se movimentar ao mesmo tempo. Como você pode ver no meu projeto tem muitos carros, mas isso tem custo em desempenho de máquina que em computadores modestos, como o meu, pode ser um problema. Dependendo da máquina que vai rodar e da quantidade de carros, existe meios mais simples de fazer.

O que precisamente os carros de seu projeto fazem? Você quer simular um transito de forma fidedigna? Do tipo que pára no semáforo e tal?

Qual o seu domínio do RPG MAKER MV? Você manja bem de programação por eventos? Você programa scripts?
Oi DadoCWB! Desculpe a demora pra responder, estou cheio de coisas pra fazer pra faculdade que termina agora em Dezembro então ta bem puxado. Mas então, eu não domino ainda o RPG Maker, estou estudando tutoriais, e a questão dos scripts e eventos to pegando aos poucos, mas a ideia que quero fazer no meu jogo é bem mais simples do que o teu jogo onde praticamente tem um trânsito de vários carros andando por tudo. O meu é um único carro preto que está parado, e assim que o personagem parar de falar ele vai desaparecer e é nesse momento que o carro anda devagar em linha horizontal até o final da tela e desaparece. Dando a ideia de que ele entrou no carro e saiu, é só isso. Tu sabe como fazer isso?
 

Anexos

  • imagem_2023-09-14_090018569.png
    imagem_2023-09-14_090018569.png
    276,8 KB · Visualizações: 25
Oi DadoCWB! Desculpe a demora pra responder, estou cheio de coisas pra fazer pra faculdade que termina agora em Dezembro então ta bem puxado. Mas então, eu não domino ainda o RPG Maker, estou estudando tutoriais, e a questão dos scripts e eventos to pegando aos poucos, mas a ideia que quero fazer no meu jogo é bem mais simples do que o teu jogo onde praticamente tem um trânsito de vários carros andando por tudo. O meu é um único carro preto que está parado, e assim que o personagem parar de falar ele vai desaparecer e é nesse momento que o carro anda devagar em linha horizontal até o final da tela e desaparece. Dando a ideia de que ele entrou no carro e saiu, é só isso. Tu sabe como fazer isso?

Nem se preocupe com a demora, afinal a pressa é toda sua. Já que não domina a ferramenta, quanto mais simples for o teu projeto, melhor. Um erro que o pessoa que tá começando costuma cometer é querer criar algo muito complexo antes de dominar o básico, bem esse não é o teu caso. Que bom.
O que você precisa é bem simples de ser feito. Basicamente você vai trabalhar com um ou dois switches e as paginas do evento. Tente algo assim

ex1.jpg


1 - o seu evento carros deve ter 2 páginas.
2- Na página 1 você vai ter basicamente 3 comandos:
2a - O primeiro comando deixa o sprite do personagem invisível.
2b - O segundo comando faz o carro se mover para a esquerda.
2 c - O terceiro comando ativa uma autoswitch.
3 - Na pagina 2, você deixa ela sem o sprite do carro e seleciona a opção Ativar AutoSwitch.
 
Última edição:
Nem se preocupe com a demora, afinal a pressa é toda sua. Já que não domina a ferramenta, quanto mais simples for o teu projeto, melhor. Um erro que o pessoa que tá começando costuma cometer é querer criar algo muito complexo antes de dominar o básico, bem esse não é o teu caso. Que bom.
O que você precisa é bem simples de ser feito. Basicamente você vai trabalhar com um ou dois switches e as paginas do evento. Tente algo assim

Visualizar anexo 6380

1 - o seu evento carros deve ter 2 páginas.
2- Na página 1 você vai ter basicamente 3 comandos:
2a - O primeiro comando deixa o sprite do personagem invisível.
2b - O segundo comando faz o carro se mover para a esquerda.
2 c - O terceiro comando ativa uma autoswitch.
3 - Na pagina 2, você deixa ela sem o sprite do carro e seleciona a opção Ativar AutoSwitch.Vale
Valeu pela ajuda, só me tira uma dúvida: qual o tamanho ideal do sprite do carro pois no local da imagem os carros que selecionei só aparecem a metade. E no teu exemplo o carro amarelo coube todo.
 

Anexos

  • imagem_2023-09-14_181558533.png
    imagem_2023-09-14_181558533.png
    79 KB · Visualizações: 25
Se vc tiver usando o MZ, tem um sprite de carro nele. Você pode usar um edtor de imagem para alterar a cor dele, ou se quiser um carro específico recomendo dar uma procurada na internet. Tem muitos sprites gratuitos que da pra usar.

carro.jpg
 
Voltar
Topo