[Resolvido]Faça algo até que

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

[Resolvido]Faça algo até que

Mensagem por AlexBosquin em Dom 07 Dez 2014, 10:47

o que eu quero fazer é isto:

Código:

if obj_player.y < 210
{
     do y-=1 until y != obj_player.y
}

já tentei usando o while, mas também não funfou, é basicamente assim se o y do player for menor que 210 o obj_bloco tem que subir até que o y dele seja igual ao y do player!


Última edição por AlexBosquin em Dom 07 Dez 2014, 13:28, editado 1 vez(es)

AlexBosquin

Ranking : Nota C
Número de Mensagens : 621
Idade : 20
Data de inscrição : 10/07/2012
Notas recebidas : C
Reputação : 35
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

http://www.craftstudios.com.br

Voltar ao Topo Ir em baixo

Re: [Resolvido]Faça algo até que

Mensagem por vitorfernandes13 em Dom 07 Dez 2014, 11:11

Talvez a falta de referência do valor do y faça com haja erro. Tenta fazer assim.
Código:

if obj_player.y < 210
{
    do obj_bloco.y-=1 until obj_bloco.y != obj_player.y
    // Por que vc colocou  " y != obj_player.y" não seria até o y ser igual?
}

vitorfernandes13

Ranking : Nota C
Número de Mensagens : 284
Data de inscrição : 11/01/2014
Notas recebidas : C
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido]Faça algo até que

Mensagem por AlexBosquin em Dom 07 Dez 2014, 11:27

não é falta de referência, se fosse o jogo nem rodaria o game maker declararia erro, vou testar aki mesmo assim vlw! se não colocar o y != obj_player.y e colocar o y = obj_player.y o jogo trava!

AlexBosquin

Ranking : Nota C
Número de Mensagens : 621
Idade : 20
Data de inscrição : 10/07/2012
Notas recebidas : C
Reputação : 35
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

http://www.craftstudios.com.br

Voltar ao Topo Ir em baixo

Re: [Resolvido]Faça algo até que

Mensagem por matheusco em Dom 07 Dez 2014, 11:46

Mas você tá dizendo pro código ser executado até que os valores de y sejam diferentes. Eles não já são diferentes desde o início? Então não vai ser executado.

E qual seu objetivo? Porque nessa situação talvez não precise de usar um loop.

matheusco

Número de Mensagens : 395
Idade : 23
Data de inscrição : 10/08/2014
Reputação : 51
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

http://www.tutoriaisgamemaker.com.br

Voltar ao Topo Ir em baixo

Re: [Resolvido]Faça algo até que

Mensagem por AlexBosquin em Dom 07 Dez 2014, 11:57

embaixo do codigo no meu post principal la encima ta escrito o que eu quero fazer ;D

AlexBosquin

Ranking : Nota C
Número de Mensagens : 621
Idade : 20
Data de inscrição : 10/07/2012
Notas recebidas : C
Reputação : 35
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

http://www.craftstudios.com.br

Voltar ao Topo Ir em baixo

Re: [Resolvido]Faça algo até que

Mensagem por matheusco em Dom 07 Dez 2014, 12:07

Dsculpa, não tinha visto. Mas não entendi uma coisa.

A condição é que obj_player.y seja menor que 210, mas você muda a posição y do bloco. Então se obj_player.y for menor que 210 ele nunca vai deixar de ser, vira um loop infinito.

Quão rápido essa subida tem que acontecer? Pois usando loop tudo isso aconteceria em um step.


if obj_player.y < 210 && obj_bloco.y > obj_player.y
{
y -= 1
}

Isso faz o que você quer?

matheusco

Número de Mensagens : 395
Idade : 23
Data de inscrição : 10/08/2014
Reputação : 51
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

http://www.tutoriaisgamemaker.com.br

Voltar ao Topo Ir em baixo

Re: [Resolvido]Faça algo até que

Mensagem por PedroX em Dom 07 Dez 2014, 12:22

Três exemplos que funcionam:

Código:
if obj_player.y < 210
{
    while (y != obj_player.y) y-=1;
}

Código:
if obj_player.y < 210
{
  do y-=1 until (y == obj_player.y);
}

Código:
if obj_player.y < 210
{
  y = obj_player.y;
}

Não vejo razão no seu post para usar do ou until, visto que você pode usar o terceiro código.

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: [Resolvido]Faça algo até que

Mensagem por AlexBosquin em Dom 07 Dez 2014, 13:27

@Matheusco vlw manolo seu codigo resolveu o roblema s2! as vezes o problema é algo simples e agente acabe esquecendo os detalhes

@PedroX no que vc me passou os dois primeiros codigos eu já tentei e o jogo trava, o terceiro codigo vai fazer com que quando o player y for menor que 210 vai fazer com que o bloco fique igual ao player no eixo y, e eu quero que ele suba até alcançar o y do player Very Happy

AlexBosquin

Ranking : Nota C
Número de Mensagens : 621
Idade : 20
Data de inscrição : 10/07/2012
Notas recebidas : C
Reputação : 35
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

http://www.craftstudios.com.br

Voltar ao Topo Ir em baixo

Re: [Resolvido]Faça algo até que

Mensagem por matheusco em Dom 07 Dez 2014, 13:45

De nada Smile

matheusco

Número de Mensagens : 395
Idade : 23
Data de inscrição : 10/08/2014
Reputação : 51
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

http://www.tutoriaisgamemaker.com.br

Voltar ao Topo Ir em baixo

Re: [Resolvido]Faça algo até que

Mensagem por PedroX em Seg 08 Dez 2014, 15:18

do e until vão executar o código no mesmo Step, ou seja, vai acontecer de uma vez.

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: [Resolvido]Faça algo até que

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


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