megaman rx
Membro
Membro
Autor
Mensagens: 23
Registrado em: Qui Mai 30, 2019 1:06 pm
Karma: 22

animated tileset

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
Mega
Programador
Programador
Mensagens: 71
Registrado em: Dom Mai 22, 2016 6:20 pm
Karma: 99

Re: animated tileset

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.
1
 
megaman rx
Membro
Membro
Autor
Mensagens: 23
Registrado em: Qui Mai 30, 2019 1:06 pm
Karma: 22

Re: animated tileset

Ter Jul 16, 2019 7:29 pm

por camadas,mas mesmo não ativando as camadas da error
 
Avatar do usuário
Mega
Programador
Programador
Mensagens: 71
Registrado em: Dom Mai 22, 2016 6:20 pm
Karma: 99

Re: animated tileset

Qua Jul 17, 2019 8:05 am

Mostre o código que você esta usando
1
 
megaman rx
Membro
Membro
Autor
Mensagens: 23
Registrado em: Qui Mai 30, 2019 1:06 pm
Karma: 22

Re: animated tileset

Qua Jul 17, 2019 12:53 pm

Imagem
Imagem
codigo: animlenght = 2;
animTime = 6;
animID[0] = tstBrightman;
animID[1] = tstBrightmanAnimated1;
animateOnTransition = true;
animationLayer = 700;
 
megaman rx
Membro
Membro
Autor
Mensagens: 23
Registrado em: Qui Mai 30, 2019 1:06 pm
Karma: 22

Re: animated tileset

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[i];
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
Mega
Programador
Programador
Mensagens: 71
Registrado em: Dom Mai 22, 2016 6:20 pm
Karma: 99

Re: animated tileset

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.
1
 
megaman rx
Membro
Membro
Autor
Mensagens: 23
Registrado em: Qui Mai 30, 2019 1:06 pm
Karma: 22

Re: animated tileset

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
Administrador
Administrador
Mensagens: 286
Registrado em: Sáb Abr 14, 2018 8:11 pm
Karma: 709

Re: animated tileset

Qua Jul 17, 2019 2:25 pm

Seu computador roda o GMS2? Se sim, a forma mais fácil é usando ele.
Cachorro-quente!!!

Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx
 
megaman rx
Membro
Membro
Autor
Mensagens: 23
Registrado em: Qui Mai 30, 2019 1:06 pm
Karma: 22

Re: animated tileset

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
Mega
Programador
Programador
Mensagens: 71
Registrado em: Dom Mai 22, 2016 6:20 pm
Karma: 99

Re: animated tileset

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
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
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:
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
 
megaman rx
Membro
Membro
Autor
Mensagens: 23
Registrado em: Qui Mai 30, 2019 1:06 pm
Karma: 22

Re: animated tileset

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.