Conectar-se
Quem está conectado
26 usuários online :: 1 usuário cadastrado, Nenhum Invisível e 25 Visitantes

WellingtonBecker

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 10/07/2012
Número de Mensagens : 621
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 35

Prêmios
   : 1
   : 0
   : 0
Ver perfil do usuáriohttp://www.craftstudios.com.br

[Resolvido]Faça algo até que

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)
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 11/01/2014
Número de Mensagens : 284
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 11

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

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

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?
}
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 10/07/2012
Número de Mensagens : 621
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 35

Prêmios
   : 1
   : 0
   : 0
Ver perfil do usuáriohttp://www.craftstudios.com.br

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

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!
avatar
Data de inscrição : 10/08/2014
Número de Mensagens : 395
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 51

Prêmios
   : 1
   : 0
   : 0
Ver perfil do usuáriohttp://www.tutoriaisgamemaker.com.br

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

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.
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 10/07/2012
Número de Mensagens : 621
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 35

Prêmios
   : 1
   : 0
   : 0
Ver perfil do usuáriohttp://www.craftstudios.com.br

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

em Dom 07 Dez 2014, 11:57
embaixo do codigo no meu post principal la encima ta escrito o que eu quero fazer ;D
avatar
Data de inscrição : 10/08/2014
Número de Mensagens : 395
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 51

Prêmios
   : 1
   : 0
   : 0
Ver perfil do usuáriohttp://www.tutoriaisgamemaker.com.br

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

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?
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6037
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 288

Prêmios
   :
   :
   :
Ver perfil do usuário

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

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.
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 10/07/2012
Número de Mensagens : 621
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 35

Prêmios
   : 1
   : 0
   : 0
Ver perfil do usuáriohttp://www.craftstudios.com.br

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

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
avatar
Data de inscrição : 10/08/2014
Número de Mensagens : 395
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 51

Prêmios
   : 1
   : 0
   : 0
Ver perfil do usuáriohttp://www.tutoriaisgamemaker.com.br

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

em Dom 07 Dez 2014, 13:45
De nada Smile
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6037
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 288

Prêmios
   :
   :
   :
Ver perfil do usuário

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

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.
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum