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
» player não consegue andar
por 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

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