GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» Colisões não funcionando
por RastaMaan Hoje à(s) 19:49

» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Hoje à(s) 16:45

» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18

» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30

» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07

» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45

» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51

» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31

» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11

» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39

» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17

» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18

» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34

» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12

» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02

» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55

» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21

» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21


Sistema travado

5 participantes

Ir para baixo

Sistema travado Empty Sistema travado

Mensagem por eubruno Sex 25 Nov 2011, 23:51

Tá eu sei que travar o pc usando o GM é coisa de noob mais aconteceu.
O código que eu usei foi esse
Código:

{do
 {
for (xx=obj_edge.x; xx<=room_width; xx+=1)
  {
  instance_create(xx,obj_edge,seletor)
  }
}
until

place_meeting(x,y,obj_edge_direita)
}

acontece que como eu vi depois o "instance_create(xx,obj_edge,seletor)" está errado deveria ser na verdade "instance_create(xx,obj_edge.y,seletor)"

Então to perguntando aqui pq ficar reiniciando o pc toda hora não é bom. Meu código está certo ou ainda vai dar erro?


Última edição por eubruno em Sáb 03 Dez 2011, 15:36, editado 1 vez(es)
eubruno
eubruno

Data de inscrição : 06/11/2011
Reputação : 1
Número de Mensagens : 27
Prêmios : Sistema travado Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Sistema travado Empty Re: Sistema travado

Mensagem por Igor KinGamer Sáb 26 Nov 2011, 08:29

O seu PC trava por completo quando faz um loop infinito? Aqui um ctrl+alt+del resolve.

Enfim, o seu problema não está nisso que você disse. Afinal, o código poderia funcionar mesmo você esquecendo o ".y", pois "obj_edge" guarda algum valor inteiro positivo (referente ao objeto).

O problema está no teste final: place_meeting(x, y, obj_edge_direita). Esse loop que você fez (do - until) não altera a posição da instância em que ele é executado. Então, digamos que a posição horizontal da instância que executa esse loop é inicialmente 0. Depois da primeira iteração (primeira vez em que as ações do loop são executadas), a posição dela continua sendo 0, não satisfazendo a condição do until. Então, o loop é executado novamente, e a posição continua sendo 0. Isso nunca acaba (loop infinito), por isso que trava.
Igor KinGamer
Igor KinGamer

Data de inscrição : 26/09/2008
Reputação : 11
Número de Mensagens : 890
Prêmios : Sistema travado Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Sistema travado Empty Re: Sistema travado

Mensagem por eubruno Sáb 26 Nov 2011, 10:13

Então uma forma de consertar esse erro seria saber se QUALQUER instancia tocou o objeto edge.

Se eu usar o event collision com o objeto edge_direita para definir uma variável, e essa variável definir quando o loop parar vai dar certo?
eubruno
eubruno

Data de inscrição : 06/11/2011
Reputação : 1
Número de Mensagens : 27
Prêmios : Sistema travado Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Sistema travado Empty Re: Sistema travado

Mensagem por Igor KinGamer Sáb 26 Nov 2011, 22:29

O raciocínio pode até estar certo, mas uma vez que o loop começou a ser executado, qualquer outra coisa só será executada após o final dele, a não ser que seja chamada de dentro dele.
Isto é, o loop está dentro do evento step de um objeto. Enquanto ele não acabar, o evento step não acabará e mais nenhum evento ocorrerá, e isso inclui os eventos de colisão.

Entretanto, você pode fazer esse teste de colisão usando with e place_meeting(), ou algo assim. Mas, em vez de testar colisão, você pode comparar a variável xx com o x do obj_edge_direita. Isso seria bem mais rápido, considerando que o with faria com que todas as instâncias testassem o place_meeting().

Uma coisa que eu não entendi muito bem é o que você quer fazer. Você quer que as instâncias parem de ser criadas quando ou o xx ultrapassar o room_width, ou uma instância encostar no obj_edge_direita, o que vier primeiro? Ou é outra coisa?
Igor KinGamer
Igor KinGamer

Data de inscrição : 26/09/2008
Reputação : 11
Número de Mensagens : 890
Prêmios : Sistema travado Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Sistema travado Empty Re: Sistema travado

Mensagem por eubruno Dom 27 Nov 2011, 13:11

Puxa vida é por isso que deu tudo errado :/ vou dar uma olhada, se funcionar eu coloco resolvido no rópido.

Quanto ao que eu to tentando fazer na verdade é encostar no objeto edge direita. O Room width é só pra não ultrapassar limites da room. mas não de umuito certo Razz
eubruno
eubruno

Data de inscrição : 06/11/2011
Reputação : 1
Número de Mensagens : 27
Prêmios : Sistema travado Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Sistema travado Empty Re: Sistema travado

Mensagem por Limalokão Dom 27 Nov 2011, 13:41

Acho que seu pc está travando por causa que ele está criando muitos objetos de uma só vez! Então a cada step ele cria um, imagine só, cada 30 steps 1 segundo cada um segundo 30 objetos Happy
Limalokão
Limalokão

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 24/11/2009
Reputação : 10
Número de Mensagens : 805
Prêmios : Sistema travado Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0


https://llgd.com.br

Ir para o topo Ir para baixo

Sistema travado Empty Re: Sistema travado

Mensagem por eubruno Dom 27 Nov 2011, 18:36

Para entender melhor oq eu estou tentando fazer:
*=seletor
]=obj_edge
[=obj_edge_direita

oq ele tem que fazer:
criar instancias do obj_edge até o obj_edge_direita não importando a distancia

]*****[
]*********[
é isso que ele vai fazer se funcionar
eubruno
eubruno

Data de inscrição : 06/11/2011
Reputação : 1
Número de Mensagens : 27
Prêmios : Sistema travado Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Sistema travado Empty Re: Sistema travado

Mensagem por Igor KinGamer Seg 28 Nov 2011, 12:49

É, então realmente é só testar o xx com o x do obj_edge_direita.
Mas esse objeto seletor tem só um pixel de largura? Se, por exemplo, ele tiver 32 pixels, não tem porque criar um por pixel, você deveria colocar lá no for "xx += 32". Criar tantas instâncias assim compromete o fps mesmo.

Obs.: Quanto ao que o Soul Limaloko disse, não é 30 instâncias por segundo, porque o código não cria uma instância por step. A criação está dentro do for, então, todas são criadas no mesmo step.
Igor KinGamer
Igor KinGamer

Data de inscrição : 26/09/2008
Reputação : 11
Número de Mensagens : 890
Prêmios : Sistema travado Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Sistema travado Empty Re: Sistema travado

Mensagem por eubruno Sáb 03 Dez 2011, 14:22

Opa pessoal, desculpa o sumiço.

Mas então o sistema continua travando quando eu ativo o codigo.
O codigo atual está assim:
Código:
if keyboard_check_pressed(ord"B"))
{
 do
  {
    for(xx=x; xx<=obj_edge_direita.x; xx+=32)
        {
            instance_creat(xx,obj_edge.y,obj_seletor)
          }
    }

until (xx=obj_edge_direita.x
}


Então oq está acontecendo :\ é o meu pc que não aguenta?
Será que daria pra alguém fazer o código testar e ver se funciona?
eubruno
eubruno

Data de inscrição : 06/11/2011
Reputação : 1
Número de Mensagens : 27
Prêmios : Sistema travado Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Sistema travado Empty Re: Sistema travado

Mensagem por Hatzo enkiri Sáb 03 Dez 2011, 14:55

Encontrei alguns errinhos:
if keyboard_check_pressed(ord("B"))
{
do
{
for(xx=x; xx<=obj_edge_direita.x; xx+=32)
{
instance_create(xx,obj_edge.y,obj_seletor)
}
}

until (xx=obj_edge_direita.x)
}
Só uma Pergunta :Para O Quê vc tá usando esse código
avatar
Hatzo enkiri

Games Ranking : Nota B

Notas recebidas : B
Data de inscrição : 19/02/2009
Reputação : 7
Número de Mensagens : 226
Prêmios : Sistema travado Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Sistema travado Empty Re: Sistema travado

Mensagem por Mr.Brum Sáb 03 Dez 2011, 15:06

O problema não é o teu pc...
Seu código até que tá certo, mas o erro pode estar aqui no final:
Código:
until (xx=obj_edge_direita.x
}
Essa é a condição para que o código do Do ocorra.
No gm dificilmente vc terá uma igualdade em comparações no step, pois pode ocorrer muito rápido a ponto de ela não ser detectada(dependendo da posição no código step).

Tente trocar o igual por <= assim mesmo que a condição de igualdade passe batida,ela pode ser detectada pelo <.

Espero que dê certo:
until (xx<=obj_edge_direita.x
}

Não sei o objetivo do seu código, mas fiz uma engine que pode te ajudar,ela não faz um loop,mas dá certo,e vc pode improvisar pro teu caso:
http://dl.dropbox.com/u/43446077/novos/seletor.gmk


Mr.Brum
Mr.Brum

Games Ranking : Nota C

Notas recebidas : D + D + C + C + D + B
Data de inscrição : 28/04/2011
Reputação : 41
Número de Mensagens : 915
Prêmios : Sistema travado Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://mrbrumgames.blogspot.com/

Ir para o topo Ir para baixo

Sistema travado Empty Re: Sistema travado

Mensagem por eubruno Sáb 03 Dez 2011, 15:35

Vlw mrbrum funcionou. Na verdade tem uma certa logica pra eu usar o do mas eu tenho que dar uma olhada melhor em como eu vou fazer oq tenho em mente.
De qualquer forma Tópico resolvido
eubruno
eubruno

Data de inscrição : 06/11/2011
Reputação : 1
Número de Mensagens : 27
Prêmios : Sistema travado Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Sistema travado Empty Re: Sistema travado

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo


 
Permissões neste sub-fórum
Não podes responder a tópicos