[abs e sign] como funcional?

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

[abs e sign] como funcional?

Mensagem por charlles.rafael em Ter 07 Jan 2014, 09:18

ola gente do forum, eu gostaria de saber se alguem poderia me esplicar como funciona esse 2 comandos: abs e sign

tipo acho que eles podem me ajudar bastante, so nao sei como eles funcional, se alguem puder me ajudar eu agradeço Very Happy

charlles.rafael

Número de Mensagens : 82
Idade : 23
Data de inscrição : 30/09/2012
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://charllesrafael.blogspot.com

Voltar ao Topo Ir em baixo

Re: [abs e sign] como funcional?

Mensagem por Pit Bull em Ter 07 Jan 2014, 09:25

abs(x) Returns the absolute value of x.
sign(x) Returns the sign of x (-1, 0 or 1).

O abs serve para tirar o sinal de um numero, por exemplo:

abs(-40) vai retornar 40.

abs(40) vai retornar também 40.

Sign vai retornar o sinal do numero, por exemplo:

sign(-40) vai retornar -1(pra você saber que esse numero é negativo)

sign(0) vai retornar 0.

sign(40) vai retornar 1.


Pit Bull

Número de Mensagens : 630
Idade : 21
Data de inscrição : 31/08/2010
Reputação : 15
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://leninja.com.br

Voltar ao Topo Ir em baixo

Re: [abs e sign] como funcional?

Mensagem por charlles.rafael em Ter 07 Jan 2014, 10:19

vlw Very Happy, mas como uso pra fazer movimentos tipo é pra um jogo de puzzle que estou fazendo, e a verificacao tem que ser exata, e me parece que da pra fazer caom essas funcoes so nao sei usar, tem como me ajudar?

charlles.rafael

Número de Mensagens : 82
Idade : 23
Data de inscrição : 30/09/2012
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://charllesrafael.blogspot.com

Voltar ao Topo Ir em baixo

Re: [abs e sign] como funcional?

Mensagem por Pit Bull em Ter 07 Jan 2014, 21:05

Cara o legal da programação é que você pode fazer algo com N maneiras diferentes, se você disse que essas duas funções vai te ajudar, você tem que pensar em um jeito que elas vão se encaixar.

Infelizmente não posso te ajudar a criar seu jogo todo, mas se você me falar como ele vai ser eu posso te dar dicas.

Pit Bull

Número de Mensagens : 630
Idade : 21
Data de inscrição : 31/08/2010
Reputação : 15
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://leninja.com.br

Voltar ao Topo Ir em baixo

Re: [abs e sign] como funcional?

Mensagem por saim em Qua 08 Jan 2014, 09:30

eu uso muito "sign" pra saber a direção de uma coisa, por exemplo, a velocidade.
Então se quero que um objeto verifique se tem uma colisão dois passos adiante, eu faço algo como
Código:
pos_x_da_colisao := x + sign(velocidade) * 2 * tamanho_do_passo
Nesse exemplo, a velocidade pode ser positiva ou negativa. Talvez eu tivesse que prever o caso da velocidade ser zero.

Já abs, eu uso pra muita coisa... tem situações que você quer saber o módulo do valor, não interessa se é positivo ou negativo. Por exemplo, a distância horizontal entre dois objetos é "ob1 . x - ob2 . x". Isso pode te dar um valor negativo. "abs" transformaria ele em positivo e você poderia colocar a intensidade de um sinal baseado no resultado, pro jogador usar um radar pra procurar algum objeto.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: [abs e sign] como funcional?

Mensagem por charlles.rafael em Qua 08 Jan 2014, 23:29

mas tipo ainda nao entendi como isso pode ser usado pra colisao, tem como fazer um tutorial ou uma engina pra eu intender melhor? tipo pq to fazendo um jogo que tem que ter colisao perfeita, tem alguma dica??

charlles.rafael

Número de Mensagens : 82
Idade : 23
Data de inscrição : 30/09/2012
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://charllesrafael.blogspot.com

Voltar ao Topo Ir em baixo

Re: [abs e sign] como funcional?

Mensagem por TRFN em Qui 09 Jan 2014, 01:07

Mas no caso depende da sua necessidade. O que você quer ao certo? Porque se você quer usar esses dois comandos não é atoa. Descreva como seria essa colisão. ABS, na movimentação, serve como função para ajudar nos calculos de distancia ou soma de valores geralmente e sign para condições. Ex:
Código:
if( abs( sign( hspeed ) ) )then movimento = true;
Neste código, independente da velocidade e da direção (seja negativa ou normal [positiva] ) ele vai detectar se a velocidade horizontal e diferente de zero.

___________



TRFN

Ranking : Nota C
Número de Mensagens : 970
Idade : 21
Data de inscrição : 16/01/2012
Notas recebidas : C
Reputação : 33
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 2

http://trfnsite.com

Voltar ao Topo Ir em baixo

Re: [abs e sign] como funcional?

Mensagem por charlles.rafael em Qui 09 Jan 2014, 01:44

quero um movimento limpo, top down quando o player encosta na "parede" ele para exatamente do lado da parede, nem antes nem depois (é isso que preciso)

colisao verificando pixil por pixel

obrigado desde ja

charlles.rafael

Número de Mensagens : 82
Idade : 23
Data de inscrição : 30/09/2012
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://charllesrafael.blogspot.com

Voltar ao Topo Ir em baixo

Re: [abs e sign] como funcional?

Mensagem por saim em Qui 09 Jan 2014, 08:52

Tem a engine do willy, deixa eu procurar aqui...
Olha, está na versão 2.0!

Acho que não tem nada a ver nem com abs nem com sign - achei legal ver funcionando, mas nunca cheguei a esmiuçar os scripts - mas te dá o que você quer, de um jeito muito didático e divertido.
A apresentação da engine não começa, de cara, com movimento em plataforma, mas vai acompanhando que chega lá.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: [abs e sign] como funcional?

Mensagem por Willy em Qui 09 Jan 2014, 19:09

saim escreveu:Tem a engine do willy, deixa eu procurar aqui...
Olha, está na versão 2.0!

Acho que não tem nada a ver nem com abs nem com sign - achei legal ver funcionando, mas nunca cheguei a esmiuçar os scripts - mas te dá o que você quer, de um jeito muito didático e divertido.
A apresentação da engine não começa, de cara, com movimento em plataforma, mas vai acompanhando que chega lá.
Obrigado por citar a engine, me poupou o trabalho. Happy

charlles.rafael:
Por coincidência, a engine faz o uso de abs e de sign. Vou explicar como:

Tenhamos como base, o script que simula o hspeed, que no caso da engine, é o scr_hspeed. Para usar o script, precisamos passar a velocidade que queremos.
Observando o script, perceba que uma das primeiras linhas é a seguinte:
Código:
d = sign(argument0);
Neste caso, "d" é a primeira letra de direção e o argumento0 é a velocidade passada para o script. Essa variável temporária será usada posteriormente.
Depois disso, logo abaixo, encontramos:
Código:
repeat(abs(argument0))
A função repeat repete os códigos abaixo de acordo com a quantidade que colocamos a ela, que no nosso caso, é abs(argument0). Como foi dito, abs serve para deixar o número positivo. Sabendo disso, saiba também que o repeat só funciona se o valor dado for positivo. Usando o abs, nós garantimos que o código não vai bugar, pois nem sempre a velocidade do jogador é positiva.
Depois disso, o script começa a calcular se existe espaço livre para poder andar, mas, como saber a direção certa que temos que checar? Já fizemos isso, e a resposta para nosso problema está na variável "d". Em código, é isso:
Código:
place_free(x+1*d,y);
Perceba que "1" está sendo multiplicado por "d" para fazer a checagem para o lado certo. Na matemática, todo numero multiplicado por 1 não se altera, todo numero multiplicado por -1 tem o sinal invertido, e todo numero multiplicado por 0 vira 0.

Resumindo, usamos abs para garantir que o repeat receba um valor positivo e usamos sign para saber em qual direção (-1, 0, 1, ou seja, esquerda, parado, direita) o objeto está se movendo.


Última edição por Willy em Sab 11 Jan 2014, 15:12, editado 1 vez(es)

___________


Engines, tutoriais e projetos? Clique no banner!



Atenção:
Comporte-se, senão você vai levar a cintada do Willy no meio da bunda! bravo


Willy

Ranking : Nota A
Número de Mensagens : 1812
Idade : 23
Data de inscrição : 08/06/2009
Notas recebidas : C + B + A + A
Reputação : 245
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://willy-gmbr.blogspot.com/

Voltar ao Topo Ir em baixo

Re: [abs e sign] como funcional?

Mensagem por saim em Sex 10 Jan 2014, 11:08

Willy escreveu:Na matemática, todo numero multiplicado por 1 vira positivo, todo numero multiplicado por -1 vira negativo, e todo numero multiplicado por 0 vira 0.
Correção rápida:
todo numero multiplicado por 1 fica igual estava antes
todo numero multiplicado por -1 inverte o sinal

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: [abs e sign] como funcional?

Mensagem por Willy em Sab 11 Jan 2014, 15:13

Opa, pequeno deslize meu... Obrigado pela correção, nem percebi o erro. Já corrigi o post.

___________


Engines, tutoriais e projetos? Clique no banner!



Atenção:
Comporte-se, senão você vai levar a cintada do Willy no meio da bunda! bravo


Willy

Ranking : Nota A
Número de Mensagens : 1812
Idade : 23
Data de inscrição : 08/06/2009
Notas recebidas : C + B + A + A
Reputação : 245
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://willy-gmbr.blogspot.com/

Voltar ao Topo Ir em baixo

Re: [abs e sign] como funcional?

Mensagem por Conteúdo patrocinado Hoje à(s) 06:34


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