Olá makers! Tudo tranquilo?
Fundos e azulejos??? Faz bastante sentido, não que você usar Backgrounds exclusivamente para os fundos dos jogos e nem as Tiles como blocos de imagem separados, mas essa é a essência.
Qualquer dúvida ou sugestão deixe nos comentários.
FLWS!
- Criar um tileset para cada frame, com mesmo tamanho e mesmos cortes;
- Criar um vetor/array para guardar cada frame;
- Criar variáveis de controle da animação, assim como image_index e image_speed para sprites;
- Alternar as tilesets como base na array e variáveis criadas.
Isso demanda algum processamento, então não exagere em quantidade de elementos animados.
Fiz um exemplo:
Exemplo - Anima tile
Não importa qual frame você coloque na room, ele será animado de qualquer forma. Só a ordem que vai mudar.
E sobre bug na colisão, sempre usei blocos esticados no GM:S, pois economiza processamento já que são poucas instâncias usadas.
FLWS!
Um tile não possui evento de colisão, lembre-se que ele é apenas um pedaço de imagem colocado na room. Mas ele tem propriedades como posição altura e largura que podem ser acessados, desde que você tenha sua ID (tige_get_x(), tige_get_width(), tige_get_x(), tige_get_heigth()) e com isso você poderia fazer um script de colisão Box-To-Box por exemplo. Novamente o desempenho pode cair.
Mas há uma forma mais rápida de detectar uma colisão simples, vou usar o exemplo da documentação do GM:S:
O que você pode fazer é trocar a posição do mouse pela posição do player. Lembrando que é apenas 1 ponto e não a mascara de colisão do player, porém compreende todo o tile. Ou seja esse código checa se um ponto está colidindo com o tile.
FLWS!
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. |
[Vídeo] PGM 2.4 - #GMS: Backgrounds e Tiles
[Vídeo] PGM 2.4 - #GMS: Backgrounds e Tiles
Olá makers! Tudo tranquilo?
Fundos e azulejos??? Faz bastante sentido, não que você usar Backgrounds exclusivamente para os fundos dos jogos e nem as Tiles como blocos de imagem separados, mas essa é a essência.
Qualquer dúvida ou sugestão deixe nos comentários.
FLWS!
- dreamaster
- Novato
- Reações: 0
- Mensagens: 7
-
Re: [Vídeo] PGM 2.4 - #GMS: Backgrounds e Tiles
Muito bom! Uma dúvida quanto aos tilesets, é possível fazer tilesets animados? E sobre a colisão de um bloco invisível que vc disse. Eu posso pegar um bloco invisível com colisão de tamanho 32x32 por exemplo, e posso esticar ele na room por cima dos tilesets sem ter algum bug de colisão futuramente?
Re: [Vídeo] PGM 2.4 - #GMS: Backgrounds e Tiles
Sim, é possível animar via código. Você deve seguir alguns passos:dreamaster escreveu:Muito bom! Uma dúvida quanto aos tilesets, é possível fazer tilesets animados? E sobre a colisão de um bloco invisível que vc disse. Eu posso pegar um bloco invisível com colisão de tamanho 32x32 por exemplo, e posso esticar ele na room por cima dos tilesets sem ter algum bug de colisão futuramente?
- Criar um tileset para cada frame, com mesmo tamanho e mesmos cortes;
- Criar um vetor/array para guardar cada frame;
- Criar variáveis de controle da animação, assim como image_index e image_speed para sprites;
- Alternar as tilesets como base na array e variáveis criadas.
Isso demanda algum processamento, então não exagere em quantidade de elementos animados.
Fiz um exemplo:
Exemplo - Anima tile
Não importa qual frame você coloque na room, ele será animado de qualquer forma. Só a ordem que vai mudar.
E sobre bug na colisão, sempre usei blocos esticados no GM:S, pois economiza processamento já que são poucas instâncias usadas.
FLWS!
- dreamaster
- Novato
- Reações: 0
- Mensagens: 7
-
Re: [Vídeo] PGM 2.4 - #GMS: Backgrounds e Tiles
Nossa valeu mesmo! Uma curiosidade talvez por que ainda estou começando com gml, vi no código você usando velocidade como ".33" por exemplo. Isso seria multiplicando ou algo como "0.33"? Se for multiplicando qual seria a importância no lugar de um "5" ou "3"? Vlw!
Re: [Vídeo] PGM 2.4 - #GMS: Backgrounds e Tiles
Pensa no seguinte, tile_index é a subimagem atual, como são duas ela é 0 ou 1, correto? Logo a gente soma o o tile_speed ao tile_index a cada evento Step, ou seja, 30 vezes por segundo.
Como o valor de tile_index deve permanecer entre 0 e 1 usamos o operador de módulo (mod) para que o valor não ultrapasse 2. Para saber mais sobre módulo visite minha aula em texto sobre operações matemáticas, é só clicar na imagem da assinatura.
Resumindo, somamos o valor 0.33 constantemente ao frame atual para criar a animação.
FLWS!
Como o valor de tile_index deve permanecer entre 0 e 1 usamos o operador de módulo (mod) para que o valor não ultrapasse 2. Para saber mais sobre módulo visite minha aula em texto sobre operações matemáticas, é só clicar na imagem da assinatura.
Resumindo, somamos o valor 0.33 constantemente ao frame atual para criar a animação.
FLWS!
Re: [Vídeo] PGM 2.4 - #GMS: Backgrounds e Tiles
Desculpa reabrir a discussão
me surgiu uma dúvida...
Situação:
Digamos que eu tenho em um mapa, uma área total de 400x400 (pixels) animada...
Pergunta:
é melhor usar tiles animados (que consome processamento), ou usar objetos com sprite animado?
e uma outra pergunta:
Um tile animado, como ele interage com um objeto?
Digamos que um personagem caminhe por meio da grama animada... qual vai ser o resultado?
vlwwww
me surgiu uma dúvida...
Situação:
Digamos que eu tenho em um mapa, uma área total de 400x400 (pixels) animada...
Pergunta:
é melhor usar tiles animados (que consome processamento), ou usar objetos com sprite animado?
e uma outra pergunta:
Um tile animado, como ele interage com um objeto?
Digamos que um personagem caminhe por meio da grama animada... qual vai ser o resultado?
vlwwww
Re: [Vídeo] PGM 2.4 - #GMS: Backgrounds e Tiles
Ambos consomem processamento, porém como a região que mencionou é pequena não afeta o desempenho consideravelmente. O número de tiles teria que ser absurdo para causa estrago.Eddy escreveu:Desculpa reabrir a discussão
me surgiu uma dúvida...
Situação:
Digamos que eu tenho em um mapa, uma área total de 400x400 (pixels) animada...
Pergunta:
é melhor usar tiles animados (que consome processamento), ou usar objetos com sprite animado?
e uma outra pergunta:
Um tile animado, como ele interage com um objeto?
Digamos que um personagem caminhe por meio da grama animada... qual vai ser o resultado?
vlwwww
Um tile não possui evento de colisão, lembre-se que ele é apenas um pedaço de imagem colocado na room. Mas ele tem propriedades como posição altura e largura que podem ser acessados, desde que você tenha sua ID (tige_get_x(), tige_get_width(), tige_get_x(), tige_get_heigth()) e com isso você poderia fazer um script de colisão Box-To-Box por exemplo. Novamente o desempenho pode cair.
Mas há uma forma mais rápida de detectar uma colisão simples, vou usar o exemplo da documentação do GM:S:
Código: Selecionar todos
var tile;
// Pega o tile que está na posição do mouse no layer 1000000
tile = tile_layer_find(1000000, mouse_x, mouse_y);
// Caso realmente exista um tile nessa posição
if tile != -1
{
// O tile é deletado
tile_delete(tile);
}
FLWS!
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 0 visitante