GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» Problema ao entrar por uma porta e voltar por ela
por 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

Ir para baixo

[Resolvido]Como incorporar offsets em animações por script? Empty [Resolvido]Como incorporar offsets em animações por script?

Mensagem por telles0808 Seg 17 Jan 2011, 09:34

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:

[Resolvido]Como incorporar offsets em animações por script? Standby

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
telles0808

Data de inscrição : 14/01/2011
Reputação : 0
Número de Mensagens : 22
Prêmios : [Resolvido]Como incorporar offsets em animações por script? Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Resolvido]Como incorporar offsets em animações por script? Empty Re: [Resolvido]Como incorporar offsets em animações por script?

Mensagem por Markituh Seg 17 Jan 2011, 10:35

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.
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)
Agora, só é desenhar nas surfaces a sprite respectiva ao membro.
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()
Então, você faz o "movimento" no Step, modificando as variáveis que realizam o movimento da sprite.
Código:
if movimento_atual = andar_direta
{
cabeca_x = 10
cabeca_y = 10
}
Um código assim. Então no Draw, finalmente:
Código:
draw_surface(cabeca,cabeca_x,cabeca_y)
E assim por diante nos demais membros. Eu apenas dei uma base, cabe a você tentar resolver sozinho tomando em conta o que eu disse, e o que outros membros irão dizer.
Markituh
Markituh

Games Ranking : Sem avaliações

Data de inscrição : 11/10/2009
Reputação : 106
Número de Mensagens : 2184
Prêmios : [Resolvido]Como incorporar offsets em animações por script? Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Resolvido]Como incorporar offsets em animações por script? Empty Re: [Resolvido]Como incorporar offsets em animações por script?

Mensagem por telles0808 Seg 17 Jan 2011, 11:52

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
telles0808

Data de inscrição : 14/01/2011
Reputação : 0
Número de Mensagens : 22
Prêmios : [Resolvido]Como incorporar offsets em animações por script? Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Resolvido]Como incorporar offsets em animações por script? Empty Re: [Resolvido]Como incorporar offsets em animações por script?

Mensagem por All-x Seg 17 Jan 2011, 12:28

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!
All-x
All-x

Games Ranking : Nota A

Notas recebidas : B A
Data de inscrição : 20/12/2008
Reputação : 189
Número de Mensagens : 2571
Prêmios : [Resolvido]Como incorporar offsets em animações por script? Empty

Medalhas x 0 Tutoriais x 25 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Javascript
  • C ou C++


https://redscreensoft.com

Ir para o topo Ir para baixo

[Resolvido]Como incorporar offsets em animações por script? Empty Re: [Resolvido]Como incorporar offsets em animações por script?

Mensagem por telles0808 Seg 17 Jan 2011, 12:55

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
telles0808

Data de inscrição : 14/01/2011
Reputação : 0
Número de Mensagens : 22
Prêmios : [Resolvido]Como incorporar offsets em animações por script? Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Resolvido]Como incorporar offsets em animações por script? Empty Re: [Resolvido]Como incorporar offsets em animações por script?

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos