Entrar
Últimos assuntos
» Problema ao entrar por uma porta e voltar por elapor aminaro Seg 06 maio 2024, 10:08
» Alguém aqui já ganha dinheiro com seus games?
por theguitarmester Ter 30 Abr 2024, 11:43
» Colisões não funcionando
por theguitarmester Ter 30 Abr 2024, 10:16
» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Sex 26 Abr 2024, 16:45
» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18
» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30
» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07
» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45
» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51
» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31
» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11
» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39
» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27
» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30
» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17
» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18
» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34
» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13
» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18
» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12
» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02
» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55
» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42
» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56
» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21
[Resolvido]Como incorporar offsets em animações por script?
3 participantes
Página 1 de 1
[Resolvido]Como incorporar offsets em animações por script?
Fala pessoal,
Gostaria de saber como posso incorporar offsets em animações por script.
A princípio, tenho uma idéia de como funcionaria, mas não consigo por isso em prática.
O objetivo final é uma animação que fique igual a essa:
O arquivo teste é esse: http://irgames.com.br/R001_editado.gmk
Como é feito o jogo. Inicialmente, em cada sprite existem várias "cabeças", "troncos" e um conjunto de pernas e braços.
As pernas e braços serão as mesmas para todos os personagens, já o conjunto de cabeças e troncos serão exclusivos de cada tipo de personagem.
A montagem deles foi feita dizendo ao objeto que se o personagem X for escolhido, usar a sprite index X correspondente a ele.
Não quero parecer confuso e nem complicar o que pode ser simples, então direto ao assunto.
Imagine uma sprite com 1 frame somente. Quero fazer essa frame ir pra cima e pra baixo, sem precisar animá-la na sprite, ou seja, usando script. Se houver uma forma de manipular frames e durações que não seja a velocidade e index de sprites, então acho que daria pra fazer.
Gostaria de saber como posso incorporar offsets em animações por script.
A princípio, tenho uma idéia de como funcionaria, mas não consigo por isso em prática.
O objetivo final é uma animação que fique igual a essa:
O arquivo teste é esse: http://irgames.com.br/R001_editado.gmk
Como é feito o jogo. Inicialmente, em cada sprite existem várias "cabeças", "troncos" e um conjunto de pernas e braços.
As pernas e braços serão as mesmas para todos os personagens, já o conjunto de cabeças e troncos serão exclusivos de cada tipo de personagem.
A montagem deles foi feita dizendo ao objeto que se o personagem X for escolhido, usar a sprite index X correspondente a ele.
Não quero parecer confuso e nem complicar o que pode ser simples, então direto ao assunto.
Imagine uma sprite com 1 frame somente. Quero fazer essa frame ir pra cima e pra baixo, sem precisar animá-la na sprite, ou seja, usando script. Se houver uma forma de manipular frames e durações que não seja a velocidade e index de sprites, então acho que daria pra fazer.
Última edição por telles0808 em Seg 17 Jan 2011, 12:56, editado 1 vez(es)
telles0808- Data de inscrição : 14/01/2011
Reputação : 0
Número de Mensagens : 22
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Resolvido]Como incorporar offsets em animações por script?
Espera, acho que sei o que você quer dizer. Você quer separar cada parte do corpo, e animá-las individualmente? Bom, isso é possível, basta apenas fazer a estrutura no Draw. Seria necessário para isso várias condições com variáveis, posição x e tudo mais, que com paciência e tempo você faz beleza. Vou lhe mostrar um esquema que possa até dar certo.
Você irá utilizar surfaces, uma para cada parte do corpo. Dessa forma, basta só dar draw_surface na hora de "movimentar" que já está feito.
Você irá utilizar surfaces, uma para cada parte do corpo. Dessa forma, basta só dar draw_surface na hora de "movimentar" que já está feito.
- Código:
cabeca = surface_create(largura,altura)
tronco = surface_create(largura,altura)
perna_esquerda = surface_create(largura,altura)
perna_direita = surface_create(largura,altura)
braco_esquerdo = surface_create(largura,altura)
braco_direito = surface_create(largura,altura)
- Código:
surface_set_target(cabeca)
draw_sprite(cabeca,0,0,0)
surface_reset_target()
surface_set_target(tronco)
draw_sprite(tronco,0,0,0)
surface_reset_target()
surface_set_target(perna_esquerda)
draw_sprite(perna_esquerda,0,0,0)
surface_reset_target()
surface_set_target(perna_direita)
draw_sprite(perna_direita,0,0,0)
surface_reset_target()
surface_set_target(braco_esquerdo)
draw_sprite(braco_esquerdo,0,0,0)
surface_reset_target()
surface_set_target(braco_direito)
draw_sprite(braco_direito,0,0,0)
surface_reset_target()
- Código:
if movimento_atual = andar_direta
{
cabeca_x = 10
cabeca_y = 10
}
- Código:
draw_surface(cabeca,cabeca_x,cabeca_y)
Markituh- Games Ranking :
Data de inscrição : 11/10/2009
Reputação : 106
Número de Mensagens : 2184
Prêmios :
x 0 x 1 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Resolvido]Como incorporar offsets em animações por script?
- Código:
{
if (keyboard_check(vk_right)) or (keyboard_check(vk_left)) or (keyboard_check(vk_up)) or (keyboard_check(vk_down)) and (jump = 0) or (atk =0)
{
spd = 4;
if (keyboard_check(vk_left)) {x -= spd};
if (keyboard_check(vk_right)) {x += spd};
if (keyboard_check(vk_up)) {y -= spd};
if (keyboard_check(vk_down)) {y += spd};
}
frames_stand_by = 04; //duração da animação stand_by
frames_walking = 12;
if animation = stand_by;
{
total_frames = frames_stand_by; //puxar a duração da animação
frame rate = 3; //não sei em GML qual comando faz a taxa de frames por segundo
pos_head_x = {x + 10}; //posição inicial da cabeça
pos_head_y = {y + 10};
sprite_index = 1;
if side = right;
{
image_xcale = 1;
frame 01 = draw_sprite (head,1,pos_head_x,pos_head_y); //Não faço idéia de como manipular um frame por script, então coloquei só de exemplo
frame 02 = draw_sprite (head,1,pos_head_x,pos_head_y + 2);
frame 04 = draw_sprite (head,1,pos_head_x,pos_head_y + 1);
}
if side = left;
{
image_xcale = -1;
frame 01 = draw_sprite (head,1,pos_head_x,pos_head_y); //Não faço idéia de como manipular um frame por script, então coloquei só de exemplo
frame 02 = draw_sprite (head,1,pos_head_x,pos_head_y + 2);
frame 04 = draw_sprite (head,1,pos_head_x,pos_head_y + 1);
}
if animation = walking
{
total_frames = frames_walking; //puxar a duração da animação
frame rate = 3; //não sei em GML qual comando faz a taxa de frames por segundo
pos_head_x = {x + 10}; //posição inicial da cabeça
pos_head_y = {y + 10};
sprite_index = 5;
if side = right;
{
image_xcale = 1;
frame 01 = draw_sprite (head,1,pos_head_x,pos_head_y); //Não faço idéia de como manipular um frame por script, então coloquei só de exemplo
frame 02 = draw_sprite (head,1,pos_head_x,pos_head_y - 1);
frame 04 = draw_sprite (head,1,pos_head_x + 1,pos_head_y);
}
if side = left;
{
image_xcale = -1;
frame 01 = draw_sprite (head,1,pos_head_x,pos_head_y); //Não faço idéia de como manipular um frame por script, então coloquei só de exemplo
frame 02 = draw_sprite (head,1,pos_head_x,pos_head_y - 1);
frame 04 = draw_sprite (head,1,pos_head_x - 1,pos_head_y);
}
}
Ou seja, iria fazer o que poderia ser feito com a edição de sprites. Porém, para não ficar editando 10.000 sprites, já que o jogo terá vários personagens, eu gostaria de saber se é possível fazer essas animações através de scripts, assim eu só digo ao GML qual static sprite usar e ele fará a animação conforme a condição, frame a frame, ou em uma duração de frames, como no exemplo, do frame 1 ao 6, etc.
telles0808- Data de inscrição : 14/01/2011
Reputação : 0
Número de Mensagens : 22
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Resolvido]Como incorporar offsets em animações por script?
Fiz um script para você na sua engine, veja se está bom:
http://www.herosh.com/download/7197427/R001_editado.rar.html
Você é livre para rotacionar a sprite (por image_angle), pois ela não ficará com os membros girados individualmente e sim todos ao mesmo tempo, como se fosse a mesma sprite. Preste atenção na variável de deslocamento. Se você aproveita-la bem poderá fazer maravilhas e economizar muitas sprites.
Espero que ajude. Vlw?
FLWS!
http://www.herosh.com/download/7197427/R001_editado.rar.html
Você é livre para rotacionar a sprite (por image_angle), pois ela não ficará com os membros girados individualmente e sim todos ao mesmo tempo, como se fosse a mesma sprite. Preste atenção na variável de deslocamento. Se você aproveita-la bem poderá fazer maravilhas e economizar muitas sprites.
Espero que ajude. Vlw?
FLWS!
Re: [Resolvido]Como incorporar offsets em animações por script?
Alex FC escreveu:Fiz um script para você na sua engine, veja se está bom:
http://www.herosh.com/download/7197427/R001_editado.rar.html
Você é livre para rotacionar a sprite (por image_angle), pois ela não ficará com os membros girados individualmente e sim todos ao mesmo tempo, como se fosse a mesma sprite. Preste atenção na variável de deslocamento. Se você aproveita-la bem poderá fazer maravilhas e economizar muitas sprites.
Espero que ajude. Vlw?
FLWS!
A hahahah! aahhh muleke!! vou te dar uma, ops, sem empolgação! hahahaha
Era exatamente isso que eu pretendia, sim, é para poupar sprites, já que fiz tudo no flash antes e agora estou "portando" pra GML porque o flash ficou muito pesado.
Bom, com isso acho que dará para fazer todo resto, agora só preciso entender como fazer um cenário em paralelo, e o sistema de colisão, pulo, etc, em cenário de plataforma com profundidade. vlw.
telles0808- Data de inscrição : 14/01/2011
Reputação : 0
Número de Mensagens : 22
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Tópicos semelhantes
» [Resolvido]Como "reutilizar" script?
» Como iniciar um timeline por script[resolvido]
» [RESOLVIDO] Como fica o change objects no script?
» [Resolvido] Como fica o display message no script?
» Como controlar animações
» Como iniciar um timeline por script[resolvido]
» [RESOLVIDO] Como fica o change objects no script?
» [Resolvido] Como fica o display message no script?
» Como controlar animações
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|