Pulando em profundidade

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

Pulando em profundidade

Mensagem por itallo em Seg 14 Set 2009, 18:55

bome stou desenvolvendo um jogo parecido com Little Fighter 2 , mas estou tendo dificuldades para fazer a parte do pulo do personagem, o pulo é fácil de fazer porem quero que o personagem continue na mesma linha que eles estava, de uma olhada:



quero que o personagem pule e quando cair, parar no mesmo valor de "Y" que ele estava antes, compreende?

O mapa teria profundidade

vlws

itallo

Ranking : Sem avaliações
Número de Mensagens : 969
Idade : 24
Data de inscrição : 26/08/2009
Reputação : 12
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   :
   :

http://www.zuluhotel.com.br

Voltar ao Topo Ir em baixo

Re: Pulando em profundidade

Mensagem por Denis Lemos em Seg 14 Set 2009, 19:28

Olha eu não sei como, mas talves tenta bolar algo usando paths!
Tipo se ele fica parado e dar um pulo vc cria um path apenas com uma linha na vertical, e regula para quando ele chegar no fim do path ele faser o sentido contrário! Para um pulo parado eu acho que talves daria certo ,mas para pular para os lados não sei se assim ía funfá ! Espera para ver se alguém sabe um jeito certo ,senão em últimos casos tenta fazer isso!

Denis Lemos

Número de Mensagens : 938
Idade : 28
Data de inscrição : 17/05/2009
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Pulando em profundidade

Mensagem por Naut2006 em Seg 14 Set 2009, 19:38

Não testei, ma pode dar certo:

Cria uma variavel (algo tipo yatual (lê-se ípcilon atual XD)) e otra pulando (se não tiver uma ainda).

Aí no evento do pulo coloca isso:
Código:
//evento do pulo then
  {//comandos
  pulando=true
  yatual=y}

Aí coloca depois:
Código:
if pulando=true and y=yatual then
  {gravity=0
  pulando=false

Testa aí e ve se funciona

Goodbye Happy

Naut2006

Número de Mensagens : 213
Idade : 20
Data de inscrição : 11/08/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Pulando em profundidade

Mensagem por Igor KinGamer em Seg 14 Set 2009, 20:11

Desse jeito aí, se você se aproximasse ou afastasse do fundo enquanto estivesse no ar, o "yatual" continuaria o mesmo, além de que seria difícil a gravidade fazer o y voltar a ser o yatual.

Aqui nesse tópico eu respondi essa mesma pergunta.

Igor KinGamer

Número de Mensagens : 890
Idade : 21
Data de inscrição : 26/09/2008
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Pulando em profundidade

Mensagem por Convidad em Seg 14 Set 2009, 23:08

Moçada, há um ano e meio eu fiz um joguinho parecido com Final Fight e que usava esse mesmo esquema de profundidade. Na verdade é que esse tipo de visão confunde mesmo na hora de programar mas não tem segredo.

O lance é você controlar o x (horizontal) e o y (vertical) numa boa. Controle-os normalmente e adicione às instâncias que se movem (no Step ou EndStep):

Código:
depth := (-y);

O que vai acontecer é que qualquer instância que se encontrar "acima" de outra, terá um depth maior que as que se encontrarem abaixo, portanto, o efeito de profundidade está pronto.

Agora, nos eventos de colisão, é só condicioná-los ao depth igual ou parecido. Por exemplo: se duas instâncias tiverem o depth igual (se estiverem no mesmo plano), elas podem colidir, do contrário, não.

No Colision:

Código:
// Aqui, colocamos uma tolerância de 20 pixels, 10 pra cima e pra baixo.
// É só adicionar isso na primeira linha.

if depth < other.depth - 10 or depth > other.depth + 10 then exit;

Obko. Para o pulo, eu recomendo que você dê uma olhada nas engines de plataforma do fórum. Tem várias formas de fazer e os meninos comentaram direitinho em todas.

Boa Sorte!
Capitão Commando.

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Pulando em profundidade

Mensagem por CPinheiro em Ter 15 Set 2009, 06:32

Código:

if (y > ystart) { y=ystart; }
Se o y for maior que o y de quando o objeto foi criado, ele se torna igual ao y de quando o objeto foi criado. (;

CPinheiro

Número de Mensagens : 1015
Idade : 20
Data de inscrição : 01/06/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://supermariobrasileiro.blogspot.com

Voltar ao Topo Ir em baixo

Re: Pulando em profundidade

Mensagem por itallo em Sex 18 Set 2009, 18:52

pocha tentei fazer todos esses modelos e nenhum deu certo =/
não sei aonde estou errando, preciso muito de ajuda nessa parte.....

tpw olha só:
ao apertar espaço{
y = yatual
pulando = true
vspeed = -8
alarm[0] = 8
}

no alarm[0] :

tem o sistema de gravidade que leva ele para baixo.

if y = yatual{
gravidade = 0
}

mas ele vai caindo sem parar, ele nao para no chão......

acho que fiquei meio que NB d+ nessa engine =/

itallo

Ranking : Sem avaliações
Número de Mensagens : 969
Idade : 24
Data de inscrição : 26/08/2009
Reputação : 12
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   :
   :

http://www.zuluhotel.com.br

Voltar ao Topo Ir em baixo

Re: Pulando em profundidade

Mensagem por CPinheiro em Sex 18 Set 2009, 18:56

Tente trocar isso:
Código:

if y = yatual{
gravidade = 0
}

Por isso:
Código:

if (y>= yatual)
{
y = yatual;
gravidade = 0;
vspeed = 0;
}
else
{
alarm[0] = 1;
}

CPinheiro

Número de Mensagens : 1015
Idade : 20
Data de inscrição : 01/06/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://supermariobrasileiro.blogspot.com

Voltar ao Topo Ir em baixo

Re: Pulando em profundidade

Mensagem por Denis Lemos em Sex 18 Set 2009, 19:06

Eu encontrei aqui mesmo no forum uma engine desse tipo que voceis estão falando !
Os comentários estão em ingles e parece ser bem complicada !
aí ta o link

http://gmbr.forumeiros.com/perguntas-respostas-f10/inteligencia-artificial-de-inimigos-para-beat-em-up-como-streets-of-rage-t811.htm?highlight=inteligencia+artificial

ela tá mais pra baixo nos comentários, o nome dela é
beats of rage suorce code ou alguma coisa assim
talves possa ajuda-los!

Denis Lemos

Número de Mensagens : 938
Idade : 28
Data de inscrição : 17/05/2009
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Pulando em profundidade

Mensagem por itallo em Sex 18 Set 2009, 19:16

denis L. o link ta quebrado.....
pocha.......
vou ver se encontro uma engine em outros foruns para usar como base.
vlwscpinheiro e denis Happy

itallo

Ranking : Sem avaliações
Número de Mensagens : 969
Idade : 24
Data de inscrição : 26/08/2009
Reputação : 12
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   :
   :

http://www.zuluhotel.com.br

Voltar ao Topo Ir em baixo

Re: Pulando em profundidade

Mensagem por Denis Lemos em Sex 18 Set 2009, 19:53

denis L. o link ta quebrado.....
pocha.......
vou ver se encontro uma engine em outros foruns para usar como base.
vlwscpinheiro e denis
Desculpa aí oBKo eu que errei, o nome da engine é Beat 'em up engine
ela está no ultimo comentário !

o link ta funcionando ,eu baixei ela agora apouco !

desculpa o erro !

Denis Lemos

Número de Mensagens : 938
Idade : 28
Data de inscrição : 17/05/2009
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Pulando em profundidade

Mensagem por PedroX em Sab 19 Set 2009, 12:27

tente fazer isso, crie 5 objetos de cada carinha
ao ir para o "fundo", criar uma instancia do objeto que estara na outra posicao
ex: obj1, obj2
criar obj 2 , no obj1.y+10 e destruir o 1 (instance_destroy())
ai quando cada objeto der seu pulo ele volta proy start entendeu?
cada objeto se move so na horizontal
a vertical sera outro objeto

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: Pulando em profundidade

Mensagem por itallo em Sab 19 Set 2009, 16:38

denis L. escreveu:
denis L. o link ta quebrado.....
pocha.......
vou ver se encontro uma engine em outros foruns para usar como base.
vlwscpinheiro e denis
Desculpa aí oBKo eu que errei, o nome da engine é Beat 'em up engine
ela está no ultimo comentário !

o link ta funcionando ,eu baixei ela agora apouco !

desculpa o erro !

kra vlw, mas......
eu abri a engine e não entendi nada, mto complicado a engine, fiquei perdido.....
acho que seria melhor vocês postarem um tutorial, ja que eu preciso, muitas pessoas tbm iram precisar..... assim ja ajuda a galera.... =D

itallo

Ranking : Sem avaliações
Número de Mensagens : 969
Idade : 24
Data de inscrição : 26/08/2009
Reputação : 12
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   :
   :

http://www.zuluhotel.com.br

Voltar ao Topo Ir em baixo

Re: Pulando em profundidade

Mensagem por ManoLego em Sab 19 Set 2009, 18:11

Olha..vou responder sua duvida de uma vez por todas....arruma uma Dlll,ou um extencion de gravidade,instala
e faz o seguinte faz quando pro exeplo vc aperta espaço o player segue um path
que sera so uma linha na vertical ai a gravidade fara tudo sosinha...

ManoLego

Número de Mensagens : 192
Idade : 19
Data de inscrição : 06/09/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Pulando em profundidade

Mensagem por Thyago em Sab 19 Set 2009, 18:24

crie duas variaveis com os nomes de chao e pulando coloque
Código:
 pulando=0
em create event,ai no momento em que ele pular coloque pulando=1 chao=y.
e depois um codigo.
Código:
if(pulando=1 and y>chao){y=chao pulando=0 vspeed=0}
Ou seja se ele estiver caindo quando for passar do chao sua posicao y sera chao
e ele nao vai mais estar pulando pulando sera novamente =0

Thyago

Ranking : Nota B
Número de Mensagens : 1092
Idade : 30
Data de inscrição : 24/08/2009
Notas recebidas : D+B+B+C+A
Reputação : 31
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 1
   :

Voltar ao Topo Ir em baixo

Re: Pulando em profundidade

Mensagem por Convidad em Seg 21 Set 2009, 23:07

ManoLego escreveu:Olha..vou responder sua duvida de uma vez por todas....arruma uma Dlll,ou um extencion de gravidade,instala
e faz o seguinte faz quando pro exeplo vc aperta espaço o player segue um path
que sera so uma linha na vertical ai a gravidade fara tudo sosinha...

Amigo, você está enganado. Muito enganado. Hilariamente enganado. Evite responder algo que não sabe. Isso não ajuda em nada, só confunde quem está com dúvida.

oBKo, o exemplo do Thyago é exatamente o que eu faria também. Normalmente, eu gosto de controlar o pulo através de uma variável específica. Eu fiz um exemplo:

http://www.4shared.com/file/134438589/171577cd/exemplo_pulo_profundidade.html


Última edição por Capitão Commando em Qua 23 Set 2009, 21:24, editado 1 vez(es)

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Pulando em profundidade

Mensagem por Denis Lemos em Ter 22 Set 2009, 12:49

Valeu Cap Cmmando ta ajudando bastante hein !
É mais simples que eu pensava ! É só ter uma boa lógica de programação,
que se faz muita coisa,
sem precisar ta usando aqueles scripts complicados !

Denis Lemos

Número de Mensagens : 938
Idade : 28
Data de inscrição : 17/05/2009
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Pulando em profundidade

Mensagem por itallo em Sab 26 Set 2009, 18:07

tpw a engine deu certo mas.....
quando pulo o inimigo consegue me hitar mesmo ele estando numa posição diferente de y....
tpw.... quando to no chao ele me hita mas se ele estiver na minha frente, se ele estiver -50y do meu personagem e eu pular ele acerta o meu personagem......

como arrumo isso?

itallo

Ranking : Sem avaliações
Número de Mensagens : 969
Idade : 24
Data de inscrição : 26/08/2009
Reputação : 12
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   :
   :

http://www.zuluhotel.com.br

Voltar ao Topo Ir em baixo

Re: Pulando em profundidade

Mensagem por Denis Lemos em Sab 26 Set 2009, 18:30

Faz o mesmo que vc fez com o player, cria um eixo Y para ele também ,aí vc coloca no evento de colisão com player se o eixo Y for igual ao eixo Y do player, o código que irá ocorrer !

Denis Lemos

Número de Mensagens : 938
Idade : 28
Data de inscrição : 17/05/2009
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Pulando em profundidade

Mensagem por itallo em Sab 26 Set 2009, 21:13

a ta.... sabia que minha pergunta era de newbie =/
vlws vou fazer isso Very Happy

itallo

Ranking : Sem avaliações
Número de Mensagens : 969
Idade : 24
Data de inscrição : 26/08/2009
Reputação : 12
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   :
   :

http://www.zuluhotel.com.br

Voltar ao Topo Ir em baixo

Re: Pulando em profundidade

Mensagem por Convidad em Dom 27 Set 2009, 10:16

O jeito que o denis L. sugeriu é o certo. Mas se caso for ficar muito diferente do que você fez aí, você pode usar uma mask bem pequena, só nos pés dos personagens, que também vai dar certinho. Daí é só usar as masks para as colisões e conferir a variável "projetil" que a gente pôs lá no código.

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Pulando em profundidade

Mensagem por Conteúdo patrocinado Hoje à(s) 14:02


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