Duvida sobre move_contact_solid e direção

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

Duvida sobre move_contact_solid e direção

Mensagem por Anderson3d em Seg 20 Dez 2010, 01:15

Código:
move_contact_solid(direction,10) <<

O que interfere o 10 nesse código? Sei que é a direção, mas variá-la muda em quê? :oops:

Anderson3d

Ranking : Nota A
Número de Mensagens : 1479
Idade : 33
Data de inscrição : 15/02/2009
Notas recebidas : A - A
Reputação : 9
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

http://www.indiegamebr.com

Voltar ao Topo Ir em baixo

Re: Duvida sobre move_contact_solid e direção

Mensagem por Godsil4 em Seg 20 Dez 2010, 01:25

bem legal esse codigo n sabia q ele existia
testei agora ele como um exemplo de contato com player e uma parede
tirei o solid da parede e esse move_contact_solid dai funciono
parece q ele fundiona assim
ele move o objeto q vc quise pra direção q vc quise e com a velocidade q vc quise
a velocidade seria o 10 e a direção o direction

Godsil4

Ranking : Nota B
Número de Mensagens : 474
Data de inscrição : 26/11/2010
Notas recebidas : B+A
Reputação : 23
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 1

http://www.google.com.br

Voltar ao Topo Ir em baixo

Re: Duvida sobre move_contact_solid e direção

Mensagem por Anderson3d em Seg 20 Dez 2010, 05:38

acho que num é isso não viu véi... ele bloqueia o objeto de passar por dentro, mas esse fator que eu falei eu mudo e não influencia nada... pra que serve afinal?

Anderson3d

Ranking : Nota A
Número de Mensagens : 1479
Idade : 33
Data de inscrição : 15/02/2009
Notas recebidas : A - A
Reputação : 9
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

http://www.indiegamebr.com

Voltar ao Topo Ir em baixo

Re: Duvida sobre move_contact_solid e direção

Mensagem por Markituh em Seg 20 Dez 2010, 07:46

Hmm... Se não me engano, o 10 é a vspeed.

Dei uma sacada no arquivo de ajuda, o 10 é a distância máxima:
Trecho do arquivo de ajuda traduzido escreveu:move_contact_solid(dir,maxdist) Move a instância na direção até uma posição de contato com um objeto sólido for alcançado. Se não há colisão na posição atual, a instância é colocada apenas antes de uma colisão ocorrer. Se lá já houver uma colisão a instância não é movida. Você pode especificar uma distância máxima para mover (use um número negativo para uma distância arbitrária).
Você devia ter feito o mesmo Happy

___________

"Não deixe para amanhã o que se pode fazer hoje"

Links úteis:
Índice de Tutoriais
Manual online do GMS

Markituh

Ranking : Sem avaliações
Número de Mensagens : 2183
Data de inscrição : 11/10/2009
Reputação : 106
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Duvida sobre move_contact_solid e direção

Mensagem por Henrique_GJ em Seg 20 Dez 2010, 09:40

entendi

o 10 é uma distancia maxima

ou seja, se estiver numa distancia menor que 10, ele anda e faz o "contato", se tiver mais longe, não

eu tenho essa duvida desde que.... sei la, faz muito tempo mas eu tenho muitas duvidas e não gosto de criar topicos pq ninguem responde xD

Henrique_GJ

Número de Mensagens : 1344
Idade : 19
Data de inscrição : 30/12/2009
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://sitedosjogos.forumeiros.com

Voltar ao Topo Ir em baixo

Re: Duvida sobre move_contact_solid e direção

Mensagem por PedroX em Seg 20 Dez 2010, 09:44

isso faz com que o objeto mova essa distancia para fora do bloco na direcao escolhida...
ou seja ele vai mover 10 pixels na direcao direction...

FLW

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Duvida sobre move_contact_solid e direção

Mensagem por Alex FC em Seg 20 Dez 2010, 09:55

Vou tentar resumir, o 10 a é distância máxima que o objeto pode ir caso estiver coledindo com um objeto sólido. Ou seja, no caso de ele "enroscar" em algum objeto sólido ele imediatamente retorna 10 pixels a posição livre.

Exemplo:

-Faça sprites de tamanho 32x32;
-Faça um objeto sólido e um objeto player;
-no step do player coloque:

Código:
 x+=4

-Na colisão do player com o objeto sólido:

Código:
move_contact_solid(direction,10)

coloque eles na room com pelo menos 100 pixels de distância e na mesma altura (y).

Você irá perceber que o player ao colidir com o objeto sólido retorna 10 pixels antes da colisão. Faça o teste e mude o 10 para 64.

Basicamente exemplificando é isso um anti-bug XD.

FLWS!

Alex FC

Ranking : Nota A
Número de Mensagens : 2503
Idade : 23
Data de inscrição : 20/12/2008
Notas recebidas : B A
Reputação : 174
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://redscreensoft.blogspot.com

Voltar ao Topo Ir em baixo

Re: Duvida sobre move_contact_solid e direção

Mensagem por Godsil4 em Seg 20 Dez 2010, 12:12

Pedro Henrique escreveu:isso faz com que o objeto mova essa distancia para fora do bloco na direcao escolhida...
ou seja ele vai mover 10 pixels na direcao direction...

FLW
olha pra mim eh isso msm q ele falo n pode se chamado de velocidade
mais esse 10 eh a certa distancia q ele move quando incosta com o otro objeto

Godsil4

Ranking : Nota B
Número de Mensagens : 474
Data de inscrição : 26/11/2010
Notas recebidas : B+A
Reputação : 23
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 1

http://www.google.com.br

Voltar ao Topo Ir em baixo

Re: Duvida sobre move_contact_solid e direção

Mensagem por reddragon em Seg 20 Dez 2010, 18:34

Anderson3d todos estão certos entretanto o que a melhor explicação para este comanda é o próprio nome dele.

move_contact_solid

movo-me ate encostar em um sólido

como Alex FC disse serve exatamente como um anti-bug.

maxdist pode ser interpretado como speed? Sim e não.

Sim porque. se você usar ele no lugar do script de movimentação ele vai andar sua velocidade a cada step que ele executar o comando. só lembrando que se você for usa-lo deixe seu speed em 0 (zero) porque se não ele se move duas vezes.

Não porque no caso de ele encontrar um obj sólido no meio do caminho ele para antes te entrar um dentro do outro. por isso cuidado porque se você precisar que os objs se encostem isso não ira acontecer, para que eles encostem o obj tem que no mínimo andar mais 1 pixel então deixe a speed em 1 (um).


existe um problema clássico nos jogos de tiro top-donw (visão por cima) que é o seguinte:

você cria uma bala que tem uma mascara de 1px por 1px e coloca uma speed e uma directon nela entretanto se essa bala for muito rápida ela atravessa a parede. porque se por exp. seu speed for de 80 e sua parede tiver apenas 32px de largura sua bala pula a parede sem bater nela porque uma ora ela esta antes da parede e na outra ela pula os 80px sem percorrer todo o caminho. agora usando move_contact_solid a bala se move até encostar na parede e deixando a speed em 1 a bala encosta nela sem atravessa-la.

reddragon

Número de Mensagens : 267
Idade : 27
Data de inscrição : 19/03/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Duvida sobre move_contact_solid e direção

Mensagem por Anderson3d em Ter 21 Dez 2010, 22:22

Puxa obrigado a todos, agora sim entendi essa bagaça! Happy
Realmente é um anti-bug. perfeito apra arrumar as colisões com paredes.
vcs são os mestres hehehe... cheers

Anderson3d

Ranking : Nota A
Número de Mensagens : 1479
Idade : 33
Data de inscrição : 15/02/2009
Notas recebidas : A - A
Reputação : 9
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

http://www.indiegamebr.com

Voltar ao Topo Ir em baixo

Re: Duvida sobre move_contact_solid e direção

Mensagem por Conteúdo patrocinado Hoje à(s) 08:15


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