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

Tutoriais, videoaulas, guias e downloads para te ajudar nos estudos.
Avatar do usuário
All-x
Administrador
Administrador
Reações: 8
Mensagens: 621
Localização: Dourados-MS

Contato:

[Vídeo] PGM 2.4 - #GMS: Backgrounds e Tiles

Mensagem por All-x » Ter Mai 10, 2016 5:38 pm

Imagem

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!
Começando com o Game Maker? Olhou para assinatura certa!

Imagem

Tutoriais e vídeo aulas de programação! Clique no Banner e confira!

Avatar do usuário
dreamaster
Novato
Novato
Reações: 0
Mensagens: 7

Re: [Vídeo] PGM 2.4 - #GMS: Backgrounds e Tiles

Mensagem por dreamaster » Ter Out 25, 2016 8:37 am

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?

Avatar do usuário
All-x
Administrador
Administrador
Reações: 8
Mensagens: 621
Localização: Dourados-MS

Contato:

Re: [Vídeo] PGM 2.4 - #GMS: Backgrounds e Tiles

Mensagem por All-x » Ter Out 25, 2016 9:55 am

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?
Sim, é possível animar via código. Você deve seguir alguns passos:

- 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!
Começando com o Game Maker? Olhou para assinatura certa!

Imagem

Tutoriais e vídeo aulas de programação! Clique no Banner e confira!

Avatar do usuário
dreamaster
Novato
Novato
Reações: 0
Mensagens: 7

Re: [Vídeo] PGM 2.4 - #GMS: Backgrounds e Tiles

Mensagem por dreamaster » Ter Out 25, 2016 11:41 am

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!

Avatar do usuário
All-x
Administrador
Administrador
Reações: 8
Mensagens: 621
Localização: Dourados-MS

Contato:

Re: [Vídeo] PGM 2.4 - #GMS: Backgrounds e Tiles

Mensagem por All-x » Ter Out 25, 2016 2:25 pm

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!
Começando com o Game Maker? Olhou para assinatura certa!

Imagem

Tutoriais e vídeo aulas de programação! Clique no Banner e confira!

Avatar do usuário
Eddy
Membro
Membro
Reações: 0
Mensagens: 29

Re: [Vídeo] PGM 2.4 - #GMS: Backgrounds e Tiles

Mensagem por Eddy » Seg Nov 07, 2016 3:14 pm

Desculpa reabrir a discussão :assobio:
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

Avatar do usuário
All-x
Administrador
Administrador
Reações: 8
Mensagens: 621
Localização: Dourados-MS

Contato:

Re: [Vídeo] PGM 2.4 - #GMS: Backgrounds e Tiles

Mensagem por All-x » Seg Nov 07, 2016 5:10 pm

Eddy escreveu:Desculpa reabrir a discussão :assobio:
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
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.

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);
}
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!
Começando com o Game Maker? Olhou para assinatura certa!

Imagem

Tutoriais e vídeo aulas de programação! Clique no Banner e confira!

Avatar do usuário
Eddy
Membro
Membro
Reações: 0
Mensagens: 29

Re: [Vídeo] PGM 2.4 - #GMS: Backgrounds e Tiles

Mensagem por Eddy » Ter Nov 08, 2016 8:13 am

Entendi

Muito obrigado Alex!!!

Responder

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 8 visitantes