Entrar
Últimos assuntos
» player não consegue andarpor lovn7 Qui 21 Nov 2024, 13:33
» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22
» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31
» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23
» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49
» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58
» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36
» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36
» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33
» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51
» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28
» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18
» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08
» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10
» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16
» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40
» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01
» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45
» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34
» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28
» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48
» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54
» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14
» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50
[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