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.

animated tileset

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
megaman rx
Membro
Membro
Reações: 0
Mensagens: 24

animated tileset

Mensagem por megaman rx » Dom Jul 14, 2019 11:00 am

bom dia pessoal!
eu estou com problemas em animar,essa parte do animated tileset,nas fases ja ate usei codigo de outras fases e nao ficar bom,ficar piscando,queria saber porque isso alguem saber?
Imagem
Imagem

Avatar do usuário
ValdeciVieira
Moderador
Moderador
Reações: 8
Mensagens: 122
Localização: Rio de Janeiro, Brasil

Re: animated tileset

Mensagem por ValdeciVieira » Ter Jul 16, 2019 4:02 pm

Você ta alternando entre as camadas de tiles ?
Se for isso deixe uma camada sempre ativa e a outra você fica desativando e ativando.

Avatar do usuário
megaman rx
Membro
Membro
Reações: 0
Mensagens: 24

Re: animated tileset

Mensagem por megaman rx » Ter Jul 16, 2019 7:29 pm

por camadas,mas mesmo não ativando as camadas da error

Avatar do usuário
ValdeciVieira
Moderador
Moderador
Reações: 8
Mensagens: 122
Localização: Rio de Janeiro, Brasil

Re: animated tileset

Mensagem por ValdeciVieira » Qua Jul 17, 2019 8:05 am

Mostre o código que você esta usando

Avatar do usuário
megaman rx
Membro
Membro
Reações: 0
Mensagens: 24

Re: animated tileset

Mensagem por megaman rx » Qua Jul 17, 2019 12:53 pm

Imagem
Imagem
codigo: animlenght = 2;
animTime = 6;
animID[0] = tstBrightman;
animID[1] = tstBrightmanAnimated1;
animateOnTransition = true;
animationLayer = 700;

Avatar do usuário
megaman rx
Membro
Membro
Reações: 0
Mensagens: 24

Re: animated tileset

Mensagem por megaman rx » Qua Jul 17, 2019 12:55 pm

esse é o codigo dentro do objeto:
event_inherited();
///Used to animate a tileset with its animation frames in different backgrounds
///An object setter is required for animating chunks of tiles(you don't have to set any object if you
///don't want to, just put one in the tileset so its tiles are splited).
///To use you have to set the animID array to the animation frames of the tileset
///and set animationLayer to the layer where the animated tiles are
/*
animLength = how many frames
animTime = interval before change
animID[#] = background frame (Note # goes up from 0 to animLength)
animateOnTransition = will stop animations during the transition

animationLayer = Layer animated tiles start at (your animated tiles should start on this layer)

Note: This only works for tiles on a 16x16 grid


see the example level for how to set this up.
*/

animLength = 2;
animTime = 6;
animateOnTransition = true;
animID[0] = tstBubbleman;
animID[1] = tstBubblemanAnimated1;
animationLayer=700;

timer = 0;
tileID = 0;
init=1;

begin step:
/// This generates tiles all across the levet
/// Note this causes lag at the start of the stage in larger levels
if(init)
{
print("Animating");
var tiles = tile_get_ids_at_depth(animationLayer);
var total = array_length_1d(tiles);
if(total<=0)
{
init=0;
instance_destroy();
exit;
}

for (var i = 0; i < total; i+=1)
{
var tile = tiles;
var bg=tile_get_background(tile);
var skip=false;
var k=0;
for(var j=0; j<animLength;j+=1;)
{
if(bg==animID[1])
{
skip=false;
k=j+1;
break;
}
}
if(skip)
continue;
if(k>=animLength)
{
k=0;
}
for(var j=1;j<animLength;j++)
{
tile_add(animID[k], tile_get_left(tile),
tile_get_top(tile), 16,
16, tile_get_x(tile), tile_get_y(tile),
animationLayer + j);
++k;
if(k>=animLength)
{
k=0;
}
}
}
for(var i =1;i<animLength;i++)
tile_layer_hide(animationLayer+i);
init=false;
exit;
}

if (global.frozen)
{
if (!global.switchingSections)
{
exit;
}
else if (!animateOnTransition)
{
exit;
}
}

if (timer < animTime)
{
timer += 1;
}
else
{
timer = 0;
if (tileID < animLength)
{
tile_layer_hide(animationLayer + tileID);
tileID += 1;
if(tileID==animLength)
tileID = 0;
tile_layer_show(animationLayer + tileID);
}
}

Avatar do usuário
ValdeciVieira
Moderador
Moderador
Reações: 8
Mensagens: 122
Localização: Rio de Janeiro, Brasil

Re: animated tileset

Mensagem por ValdeciVieira » Qua Jul 17, 2019 1:38 pm

Nossa não entendi nada, onde você pegou esse código ?
E é realmente necessário utiliza-lo ? Sprites são BEM mais simples.

Avatar do usuário
megaman rx
Membro
Membro
Reações: 0
Mensagens: 24

Re: animated tileset

Mensagem por megaman rx » Qua Jul 17, 2019 1:57 pm

realmente são fácil mas esse código esta dando muito problema mesmo,peguei de um engine pronto,gostaria de saber se tem um modo mais fácil por favor.

Avatar do usuário
None
Colaborador
Colaborador
Reações: 2
Mensagens: 286

Re: animated tileset

Mensagem por None » Qua Jul 17, 2019 2:25 pm

Seu computador roda o GMS2? Se sim, a forma mais fácil é usando ele.
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

Avatar do usuário
megaman rx
Membro
Membro
Reações: 0
Mensagens: 24

Re: animated tileset

Mensagem por megaman rx » Qua Jul 17, 2019 2:32 pm

O problema é que a versao que,eu estou é a 1.4,mudar para outra,o engine nao vai abrir

Avatar do usuário
ValdeciVieira
Moderador
Moderador
Reações: 8
Mensagens: 122
Localização: Rio de Janeiro, Brasil

Re: animated tileset

Mensagem por ValdeciVieira » Qua Jul 17, 2019 2:59 pm

Não é o melhor método mas já que é um jogo do megaman
Crie um objeto,chame-o de controlador e adicione isso

Código: Selecionar todos

Quadro = 1; //Quadro da animação.
QuadroMax = 4; //Quadro máximo da animação.
alarm[0] = 5; //Inicia o alarm
No alarm do controlador adicione isso

Código: Selecionar todos

if Quadro = QuadroMax { //Verifica se o quadro atual é igual a quantidade máxima de quadros
Quadro = 1 //Volta ao 1 se for 
}else{
Quadro += 1 /Adiciona 1 se não for
}
alarm[0] = 5; //Inicia o alarm novamente
Tiles_Animadas(Quadro,QuadroMax) //Manda as variaveis pro script
Então crie o script Tiles_Animadas e coloque isso
Esse código pode ser aprimorado para ser automático mas eu to sem tempo  :triste:

Código: Selecionar todos

switch(Quadro){
case 1:
tile_layer_show(1);
tile_layer_hide(2);
tile_layer_hide(3);
tile_layer_hide(4);
break;
case 2:
tile_layer_show(2);
tile_layer_hide(1);
tile_layer_hide(3);
tile_layer_hide(4);
break;
case 3:
tile_layer_show(3);
tile_layer_hide(1);
tile_layer_hide(2);
tile_layer_hide(4);
break;
case 4:
tile_layer_show(4);
tile_layer_hide(1);
tile_layer_hide(2);
tile_layer_hide(3);
break;
}
E no editor de sala você adiciona esses frames em sua respectiva camada.
Imagem
Resultado:
Imagem

Avatar do usuário
megaman rx
Membro
Membro
Reações: 0
Mensagens: 24

Re: animated tileset

Mensagem por megaman rx » Qua Jul 17, 2019 3:38 pm

muito obrigado de coração pela sua ajuda,vou fazer aqui e depois colocar,o resultado.
obrigado pela atenção.

Responder

Quem está online

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