Como Fazer uma UMA mira a Laser ?

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

Como Fazer uma UMA mira a Laser ?

Mensagem por Darknex em Seg 26 Set 2011, 10:00

Como Fazer uma UMA mira a laser tipo a do resident evil 4 ou 5 em um jogo de top dow e quando a mira a lazer encostar em um bloco ela si limite ate la ? ( fase isso com o draw ) Flw
Atenção não utilizo o mouse nesse jogo ( o personagem ando e gira com as setas )

Darknex

Número de Mensagens : 174
Idade : 20
Data de inscrição : 08/12/2010
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://inventaku.forumeiros.com/

Voltar ao Topo Ir em baixo

Re: Como Fazer uma UMA mira a Laser ?

Mensagem por saim em Seg 26 Set 2011, 11:36

É o seguinte: você tem uma direção e quer determinar uma distância com precisão. Você vai criar um script que pegue uma distância máxima e vá diminuido, até chegar na distância correta. Ou seja, um loop.

Pra diminuir o número de iterações, você NÃO VAI reduzindo essa distância de um em um. Você vai dividir por dois e checar se, nessa distância, o laser atinge o objetivo ou não. Se sim, reduz, se não, aumenta.
create:
variável1: distância máxima (tipo a diagonal da tela, por exemplo)
variável2: metade da variável 1
tiro:
variável3: distância atual (=variável 1)
variável4: tanto atual pra ser retirado (=variável2)
repete um monte (até variável4 ser menor ou igual a precisão desejada){
se collision_line(no ângulo e medida)
variável3-=variável4
senão
variável3+=variável4
de qualquer forma, divide por 2 a variável4
}

É, eu também não gosto de simplesmente dividir por 2. Mas já fiz muitos testes do tipo "se colidir, reduz 2/3 e se não colidir, aumenta 1/3" e a velocidade pra atingir o resultado depende da posição do objeto. Dividir por 2 foi a única que não dependia de nada. Em alguns casos é mais lenta que outras alternativas, mas em outros, é mais rápida, portanto pra se ter certeza do número de iterações, só dividindo por 2, mesmo...

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

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