como fazer em falso 3D(ou 2D) textura girar

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

como fazer em falso 3D(ou 2D) textura girar

Mensagem por theguitarmester em Qui 07 Fev 2013, 17:45

olá, gostaria de saber se existe como fazer este efeito em um jogo 2D:
(a parte rotacionando da engranagem)


queria aplicar para fazer sprites de parede de lado,(não quero fazer o sprite já de lado), tentei(e acredito que seja por aí) usando o draw_vertex_texture, poré, não obtive sucesso.

queria fazer algo que ficasse igual em um jogo 3D, você olhando para um bloco de lado, e ficará de lado, se olhar reto, ele estará reto...

(igual o cenário aqui)



se conseguirem fazer um código para girar igual a 1°imagem eu agradeço, do resto eu arrumo para aplicar na engine.

theguitarmester

Ranking : Sem avaliações
Número de Mensagens : 1908
Idade : 21
Data de inscrição : 28/02/2012
Notas recebidas : B
Reputação : 80
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 2
   : 2
   : 1

http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Voltar ao Topo Ir em baixo

Re: como fazer em falso 3D(ou 2D) textura girar

Mensagem por Rodrigo Santiago em Qui 07 Fev 2013, 17:58

Você ja tentou usar leng dir nos pontos?

Rodrigo Santiago

Ranking : Nota B
Número de Mensagens : 1281
Idade : 20
Data de inscrição : 28/07/2012
Notas recebidas : C + C + B
Reputação : 73
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 1
   : 3

Voltar ao Topo Ir em baixo

Re: como fazer em falso 3D(ou 2D) textura girar

Mensagem por theguitarmester em Qui 07 Fev 2013, 18:04

como assim, poderia me dar um exemplo?

algo assim: draw_vertex_texture(X-128+lengthdir_x(angulo,sc),..
sc é a escala relacionada a distância.

theguitarmester

Ranking : Sem avaliações
Número de Mensagens : 1908
Idade : 21
Data de inscrição : 28/02/2012
Notas recebidas : B
Reputação : 80
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 2
   : 2
   : 1

http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Voltar ao Topo Ir em baixo

Re: como fazer em falso 3D(ou 2D) textura girar

Mensagem por moisesBR em Qui 07 Fev 2013, 18:17

the, tá na cara que essa animação(engrenagem) foi criada em um programa 3d!
já a do dom eu não sei... to curioso.

moisesBR

Número de Mensagens : 873
Idade : 40
Data de inscrição : 24/10/2009
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://inprovise.blogspot.com/

Voltar ao Topo Ir em baixo

Re: como fazer em falso 3D(ou 2D) textura girar

Mensagem por Rodrigo Santiago em Qui 07 Fev 2013, 18:21

Não.(Até pq eu não sei como vc está fazendo)
Olha:
Você vai se deparar com o pior erro possível, o que realmente da uma dificuldade pra fazer isso no gameMaker.
Mesmo você tendo definido depth para os objetos que vão desenhar na frente ou atras, quando o triangulo rodar os triangulos que estão atras vão aparecer na frente em determinados angulos, a não ser que você 'recrie'a função de d3d, usando algumas propriedades da câmera como a rotação em z.

Rodrigo Santiago

Ranking : Nota B
Número de Mensagens : 1281
Idade : 20
Data de inscrição : 28/07/2012
Notas recebidas : C + C + B
Reputação : 73
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 1
   : 3

Voltar ao Topo Ir em baixo

Re: como fazer em falso 3D(ou 2D) textura girar

Mensagem por Adilson Thiago Vieira em Qui 07 Fev 2013, 18:42

ixi,isso é muito complicado,seu eu soubesse mexer com draw vertex texture eu poderia ajudar...
eu posso ate ter uma solução para que a parede parecesse 3d(axo q é isso q vc procura) mas o problema seria rotaciona-la....
se eu conseguir alguma coisa eu falo com vc!

Adilson Thiago Vieira

Ranking : Sem avaliações
Número de Mensagens : 367
Idade : 19
Data de inscrição : 17/10/2012
Notas recebidas : D+C+C+D
Reputação : 25
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: como fazer em falso 3D(ou 2D) textura girar

Mensagem por Kabeção em Qui 07 Fev 2013, 21:04

Algo assim?
Código:
ang = (ang+5) mod 360;

image_xscale = sin(degtorad(ang));

Mas não entendi, por que você quer fazer as coisas assim?
O cenário vai ter profundidade ou algo tipo mesmo sendo 2D?

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: como fazer em falso 3D(ou 2D) textura girar

Mensagem por theguitarmester em Qui 07 Fev 2013, 21:21

Rodrigo Santiago, é... tava percebendo que ia deparar com esse erro, mas não vou deixar a engine tão complexa a ponto de ser igual a d3d, mas vou fazê-la de um modo que possa criar outras engines como de TopGear, que é em 2D, diferente de MarioKart.

Adilson Thiago Vieira, vi que você conseguiu fazer o que estava tentanto, porém seu método foi meio falso, como assim falso??? porque diz que é um falso 3D, mas está usando funções 3D, o d3d_draw_block.


Kabeção, isso mesmo! essa é uma das partes que eu preciso, e você conseguiu fazer com um código bem pequeno!

O cenário vai ter profundidade ou algo assim?
sim, vai ter, olhe aqui como estava a Engine(imagem):
Spoiler:




mas ainda falta coisas, vou aplicar este seu code Kabeção, se você quizer saber mais sobre o projeto é só Contatar por MP(ou aqui mesmo).

theguitarmester

Ranking : Sem avaliações
Número de Mensagens : 1908
Idade : 21
Data de inscrição : 28/02/2012
Notas recebidas : B
Reputação : 80
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 2
   : 2
   : 1

http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Voltar ao Topo Ir em baixo

Re: como fazer em falso 3D(ou 2D) textura girar

Mensagem por Kabeção em Qui 07 Fev 2013, 21:40

Hum, então é tipo um Mode-7?

Um mode-7 daria pra se fazer sem o uso do d3d mas pela sua imagem, por causa das paredes (no mode-7 so o chao é distorcido) seria bem mais fácil usar o modo 3d.
Pelo que vi você esta simulando o 3d, por isso seria mais fácil usa-lo de uma vez...

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: como fazer em falso 3D(ou 2D) textura girar

Mensagem por theguitarmester em Qui 07 Fev 2013, 21:45

me fale como é esse mode-7, pode servir para algo...

sei que dá para fazer isto sem usar o 3D. enquanto inventava esta engine, baixei outra para ver como era, só que o sistema deles é quyase impossível de compreender! e a room é toda desenhada por codes.

theguitarmester

Ranking : Sem avaliações
Número de Mensagens : 1908
Idade : 21
Data de inscrição : 28/02/2012
Notas recebidas : B
Reputação : 80
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 2
   : 2
   : 1

http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Voltar ao Topo Ir em baixo

Re: como fazer em falso 3D(ou 2D) textura girar

Mensagem por Kabeção em Qui 07 Fev 2013, 21:48

Então, você mesmo citou o TopGear.
O TopGear e F-Zero do SNES são uns dos maiores exemplos de mode-7 que existem!
É basicamente aquilo, o jogo é 2D mas a pista é distorcida para parecer 3D.

Qual o link dessa engine que você viu?

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: como fazer em falso 3D(ou 2D) textura girar

Mensagem por theguitarmester em Qui 07 Fev 2013, 21:53

tem idéia de como se faz o efeito do TopGear?


essa engine: http://gmc.yoyogames.com/index.php?showtopic=473875
achei bem complicada ela, além de ser lenta.

theguitarmester

Ranking : Sem avaliações
Número de Mensagens : 1908
Idade : 21
Data de inscrição : 28/02/2012
Notas recebidas : B
Reputação : 80
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 2
   : 2
   : 1

http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Voltar ao Topo Ir em baixo

Re: como fazer em falso 3D(ou 2D) textura girar

Mensagem por vinians em Qui 07 Fev 2013, 22:04

Era esta engine que eu estava te falando hehehe, estava olhando ela e achei bem simples, apenas 1 objetos 3 scripts e o mais legal funciona e nao usa funcoes 3D, acho que vale a pena dar uma estudada nela.
Flws!

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: como fazer em falso 3D(ou 2D) textura girar

Mensagem por Kabeção em Qui 07 Fev 2013, 22:17

http://gmc.yoyogames.com/index.php?showtopic=446025

achei bem complicada
Mas é exatamente daquele jeito que você faz isso se não quiser usar o modo 3d. Rolling Eyes
Só o fato de adicionar o z para profundidade vai exigir muito calculo com vetores.
Depois que você entende a base daquilo você percebe que as contas são extensas mas a logica é simples.

É basicamente normalizar vetores e calcular pontos a partir das normais.
Normalizar é transformar vetores em uma escala.
Por exemplo eu tenho uma sprite de largura 64.
0 a 64 -> normalizo para 0 a 1.
Então se eu quero a metade disso eu calculo a normal*valor.
Então 0.5 do tamanho é 32 (que é como o image_x/yscale funciona).

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: como fazer em falso 3D(ou 2D) textura girar

Mensagem por theguitarmester em Qui 07 Fev 2013, 22:30

vou estudar essa engine, parece ser bem o que quero, tentarei fazer com ela algo mais simples.

theguitarmester

Ranking : Sem avaliações
Número de Mensagens : 1908
Idade : 21
Data de inscrição : 28/02/2012
Notas recebidas : B
Reputação : 80
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 2
   : 2
   : 1

http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Voltar ao Topo Ir em baixo

Re: como fazer em falso 3D(ou 2D) textura girar

Mensagem por Kabeção em Sex 08 Fev 2013, 12:16

Por curiosidade, como que você calculou as posições para chegar nesse resultado da sua screenshot sem usar o algoritmo completo de ray-casting? surpreso

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: como fazer em falso 3D(ou 2D) textura girar

Mensagem por theguitarmester em Sex 08 Fev 2013, 12:31

ele é um sistema simples até, mas que tem uma falha que eu tava tentando compensar.



só que o problema foi a inclinação e redimensionação da parede.

theguitarmester

Ranking : Sem avaliações
Número de Mensagens : 1908
Idade : 21
Data de inscrição : 28/02/2012
Notas recebidas : B
Reputação : 80
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 2
   : 2
   : 1

http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Voltar ao Topo Ir em baixo

Re: como fazer em falso 3D(ou 2D) textura girar

Mensagem por Rodrigo Santiago em Sex 08 Fev 2013, 13:37

Olha se vc quer fazer um jogo semi 3d, use d3d. Porque nao? Nao e necessario criar modelos, no caso daquela imagem que vc mostrou, voce poderia criar um igualzinho usando biboards e d3d.

Rodrigo Santiago

Ranking : Nota B
Número de Mensagens : 1281
Idade : 20
Data de inscrição : 28/07/2012
Notas recebidas : C + C + B
Reputação : 73
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 1
   : 3

Voltar ao Topo Ir em baixo

Re: como fazer em falso 3D(ou 2D) textura girar

Mensagem por Conteúdo patrocinado Hoje à(s) 19:10


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum