Acho que me perdi no caminho. Rs. Vou estudar ainda mais. Obrigado pela resposta!
Obrigado por visitar a The Game Makers Brasil Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais. |
Movimento de Surface Tópico resolvido
Movimento de Surface
Olá pessoal. Bom, tenho uma dúvida em relação a Surface.
Quando desenho um efeito de sangue nos blocos utilizando Surface eles ficam bem legais só que, quando o efeito colide com blocos em movimento apenas desenha a Surface na última posição do bloco. Eu queria saber como faço pra deixar a Surface sempre acompanhado o bloco em movimento.
Ps: Disponibilizo o arquivo GMZ.
Quando desenho um efeito de sangue nos blocos utilizando Surface eles ficam bem legais só que, quando o efeito colide com blocos em movimento apenas desenha a Surface na última posição do bloco. Eu queria saber como faço pra deixar a Surface sempre acompanhado o bloco em movimento.
Ps: Disponibilizo o arquivo GMZ.
Re: Movimento de Surface
Você poderia mostrar os códigos? Só os que está usando na surface. Só pelo que tu disse não ficou claro como está fazendo.
Abraços
Abraços
Re: Movimento de Surface
Olá Christian, a Engine que tu tá usando é do zackbell neh? Amo o conteúdo dele.
Então, o problema não foi difícil de resolver, o que eu fiz (levei um tempinho para entender a Engine) foi criar um novo objeto para acompanhar a velocidade do objeto block (não usei o block por base porque tem muitos dele), depois eu fui no bloodcontroler e no draw event dele eu só garanto que a surf fosse desenhada na posição 0 0 mesmo acrescido da posição do objeto novo (que precisa necessariamente ser criado no 0,0)
Eu também criei uma view e configurei ela, mas isso não é necessário.
Eu te aconselho a dar uma estudada a mais, porque está egine parece "complexa" e eu tô com a impressão que você não consegue entende-la, o que vai acarretar outros problemas futuros... Enfim, espero ter ajudado :)
Então, o problema não foi difícil de resolver, o que eu fiz (levei um tempinho para entender a Engine) foi criar um novo objeto para acompanhar a velocidade do objeto block (não usei o block por base porque tem muitos dele), depois eu fui no bloodcontroler e no draw event dele eu só garanto que a surf fosse desenhada na posição 0 0 mesmo acrescido da posição do objeto novo (que precisa necessariamente ser criado no 0,0)
Eu também criei uma view e configurei ela, mas isso não é necessário.
Eu te aconselho a dar uma estudada a mais, porque está egine parece "complexa" e eu tô com a impressão que você não consegue entende-la, o que vai acarretar outros problemas futuros... Enfim, espero ter ajudado :)
Tutorial de jogo de plataforma completo: https://youtu.be/MMUy_bMKqPk
Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx
Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx
Re: Movimento de Surface Tópico resolvido
O None já respondeu, porém vou deixar meu pitaco.
Vamos aos passos:
- Você criou uma surface que cobre a room toda;
- O sangue é desenhado nessa surface conforme a posição de colisão com o chão;
A surface de sangue é um desenho só, uma imagem só. Quando você desenha em um local depois em outro, quando for mover a surface irá mover ambos. É como desenhar numa folha em branco.
Dai vem três alternativas:
1 - Como o None fez e mover toda a surface com base no objeto.
2 - Ao mover algum bloco, copiar sua posição anterior com surface_copy_part, apagar o que tinha nessa posição e desenhar a parte copiada na nova posição. Isso é viável para blocos que se movem às vezes, já que teria que ser feito para cada instância de bloco. Essa opção seria bem trabalhosa.
3 - Em vez de uma surface pra toda a room, criar uma surface para cada bloco e desenhá-la acima da sprite. Não é simples também, mas é mais fácil e mais garantido que as opções acima.
Criei uma engine aqui, pois fiquei curioso sobre o resultado. Download na descrição do vídeo.
Vamos aos passos:
- Você criou uma surface que cobre a room toda;
- O sangue é desenhado nessa surface conforme a posição de colisão com o chão;
A surface de sangue é um desenho só, uma imagem só. Quando você desenha em um local depois em outro, quando for mover a surface irá mover ambos. É como desenhar numa folha em branco.
Dai vem três alternativas:
1 - Como o None fez e mover toda a surface com base no objeto.
2 - Ao mover algum bloco, copiar sua posição anterior com surface_copy_part, apagar o que tinha nessa posição e desenhar a parte copiada na nova posição. Isso é viável para blocos que se movem às vezes, já que teria que ser feito para cada instância de bloco. Essa opção seria bem trabalhosa.
3 - Em vez de uma surface pra toda a room, criar uma surface para cada bloco e desenhá-la acima da sprite. Não é simples também, mas é mais fácil e mais garantido que as opções acima.
Criei uma engine aqui, pois fiquei curioso sobre o resultado. Download na descrição do vídeo.
Re: Movimento de Surface
Sim. Estou estudando a engine de plataforma do Zack. Esta engine é incrível! Estou estudando Surface no momento, consegui fazer um efeito de sangue quase parecido com o do jogo Super Meet Boy. Estava estudando algumas engines com o mesmo efeito por isso cheguei a esse resultado. XDNone escreveu:Olá Christian, a Engine que tu tá usando é do zackbell neh? Amo o conteúdo dele.
Então, o problema não foi difícil de resolver, o que eu fiz (levei um tempinho para entender a Engine) foi criar um novo objeto para acompanhar a velocidade do objeto block (não usei o block por base porque tem muitos dele), depois eu fui no bloodcontroler e no draw event dele eu só garanto que a surf fosse desenhada na posição 0 0 mesmo acrescido da posição do objeto novo (que precisa necessariamente ser criado no 0,0)
Eu também criei uma view e configurei ela, mas isso não é necessário.
Eu te aconselho a dar uma estudada a mais, porque está egine parece "complexa" e eu tô com a impressão que você não consegue entende-la, o que vai acarretar outros problemas futuros... Enfim, espero ter ajudado :)
Acho que me perdi no caminho. Rs. Vou estudar ainda mais. Obrigado pela resposta!
Re: Movimento de Surface
Que incrível! Obrigado pela ajuda e pela atenção. Vocês são demais! Tudo já está resolvido.Alex FC escreveu:O None já respondeu, porém vou deixar meu pitaco.
Vamos aos passos:
- Você criou uma surface que cobre a room toda;
- O sangue é desenhado nessa surface conforme a posição de colisão com o chão;
A surface de sangue é um desenho só, uma imagem só. Quando você desenha em um local depois em outro, quando for mover a surface irá mover ambos. É como desenhar numa folha em branco.
Dai vem três alternativas:
1 - Como o None fez e mover toda a surface com base no objeto.
2 - Ao mover algum bloco, copiar sua posição anterior com surface_copy_part, apagar o que tinha nessa posição e desenhar a parte copiada na nova posição. Isso é viável para blocos que se movem às vezes, já que teria que ser feito para cada instância de bloco. Essa opção seria bem trabalhosa.
3 - Em vez de uma surface pra toda a room, criar uma surface para cada bloco e desenhá-la acima da sprite. Não é simples também, mas é mais fácil e mais garantido que as opções acima.
Criei uma engine aqui, pois fiquei curioso sobre o resultado. Download na descrição do vídeo.
Re: Movimento de Surface
Se vocês quiserem editar e melhorar fiquem à vontade. Façam uma engine para os membros estudaram também. Não edito a engine porque sou iniciante e meu código (não o de movimento e colisão, créditos ao Zack Bell) está um bocado confuso. Obrigado!
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes