Conectar-se
Quem está conectado
19 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 19 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 121

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

[Resolvido]mask variável no mesmo sprite - ou: subindo escadas

em Qui 30 Jun 2011, 17:24
Quero criar jogos de plataforma nos quais é possível ficar pendurado na beira das plataformas. Tipo o antigo prince of persia. Não só isso, quero subir escadas com a animação das pernas, quero criar um jogo com animação mais fluida do que simplesmente saltar pra posição final.
Daí, pra animar uma subida, pensei em criar um sprite imenso só com a animação. Ou seja, o objeto não sairia do lugar, mas como o sprite tem o personagem se deslocando, a impressão é que ele está se mexendo. No final da animação, eu salto pra posição onde está a figura e volto o image_index pro primeiro frame, no qual o personagem ainda não se deslocou, dando a impressão de que o objeto foi se movendo aos poucos. Deu pra entender? às vezes eu começo a tagarelar sem realmente dizer nada útil. Espero que não tenha sido o caso

Bom, meio que deu certo. Fiz um teste de deslocamento horizontal e não se nota que o objeto está saltando, parece que realmente o movimento é contínuo. O problema está na mask. Em todos os pontos onde o sprite passa, a mask está lá. Se eu rodo um teste de colisão, ele dá positivo, mesmo que não tenha nenhum desenho ali. Porque o desenho só não está ali no frame atual. A alguns steps atrás ou daqui a alguns steps, ele estará lá.

Então que peço que alguém me mostre uma engine, um código ou mesmo uma idéia de como resolver essa questão. Como escalar uma plataforma sem levar um tiro que deveria ter passado acima da minha cabeça?


Última edição por saim em Sab 02 Jul 2011, 08:49, editado 1 vez(es)
avatar
Ranking : Nota A
Notas recebidas : B-A-A
Data de inscrição : 13/01/2010
Número de Mensagens : 1087
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 30

Prêmios
   : 2
   : 1
   : 0
Ver perfil do usuáriohttp://www.mathaeuz.deviantart.com

Re: [Resolvido]mask variável no mesmo sprite - ou: subindo escadas

em Qui 30 Jun 2011, 17:32

A opção "separate collision masks" faz com que cada frame da sprite tenha sua propria mask, evitando o problema mencionado.
avatar
Ranking : Sem avaliações
Data de inscrição : 11/10/2009
Número de Mensagens : 2184
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 106

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [Resolvido]mask variável no mesmo sprite - ou: subindo escadas

em Qui 30 Jun 2011, 17:38
Aew, primeira dúvida do saim que respondo desde os primórdios do conhecimento Happy

O antigo Prince of Persia, é aquele feito em Flash que ele tomava uma poção e ficava com um medo grande de cair nos espinhos? Acho que sim. O Willy postou uma engine que faz exatamente isso, se pendura e depois levanta, a animação fica por ti, a programação já tá pronta (rimou)
Código:
http://gmbr.forumeiros.com/t13377-engine-pendurar-e-subir-friction-personalizado-plataforma?highlight=pendurar
Sobre a mask, acho que sei como. Tá ligado que a mask é resultado de todos os frames juntos né? Para sanar isso, marque a Checkbox Separate Collision Masks. Isso vai checar a colisão em cada frame separadamente.

Edit: Ah, o Mathaeuz postou primeiro, eis aí uma ilustração.
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 121

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

Re: [Resolvido]mask variável no mesmo sprite - ou: subindo escadas

em Sex 01 Jul 2011, 09:51
Cara, tem uma engine pronta pra isso? Primeira tarefa da noite: baixar essa engine!

Eu realmente me esqueci completamente do separate collision mask. Tem um motivo pra isso: a maior parte dos meus testes eu faço longe do game maker, com meu game genérico. Daí, eu gero as sprites a partir de desenhos em surfaces ou importo de desenhos do paint.
O lado ruim é que esses métodos não permitem o uso das separate collision masks. O lado bom é que eu só uso esse truque pra testes, portanto posso contar com essa opção pra versão final do(s) jogo(s).

Portanto, minha pergunta foi respondida.

Vou baixar e brincar com a engine que o Markituh linkou e, depois, declarar o tópico resolvido.

Muito obrigado aos dois!

PS:
primeira dúvida do saim que respondo desde os primórdios do conhecimento
Falando desse jeito, parece até que sou grande coisa...
avatar
Ranking : Sem avaliações
Data de inscrição : 11/10/2009
Número de Mensagens : 2184
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 106

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [Resolvido]mask variável no mesmo sprite - ou: subindo escadas

em Sex 01 Jul 2011, 10:12
Falando desse jeito, parece até que sou grande coisa...
E você é! Foi o único que respondeu minha primeira dúvida(e entendeu) por causa do "It's in face" lá na GMC xD Não se esqueça de usar a busca, saim. Foi nela que achei a engine (e até porque eu já havia olhado ela) Happy
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 121

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

Re: [Resolvido]mask variável no mesmo sprite - ou: subindo escadas

em Sab 02 Jul 2011, 08:48
Muito boa a engine! Tópico resolvido! Realmente minha idéia de fazer a animação e saltar pra posição final era fundamentada.
Quanto à busca... eu procurei por escadas. Os resultados eram todos relativos à escada-de-marinheiro. Eu devia ter procurado por algo como "pendurar" ou coisa do tipo, mas como minha idéia original era fazer um jogo com escadas, procurei por escadas...
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum