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
» Retorno da GMBR!!!
por theguitarmester Ter 19 Mar 2024, 22:38

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

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

» Mudar cor de apenas uma palavra
por lunalol Sex 01 Mar 2024, 13:42

» 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

» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39

» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16

» a funçao approach ainda existe?
por PEDRINDEV Ter 26 Dez 2023, 20:05

» Inimigo ataca até por trás! >:(
por saim Sex 22 Dez 2023, 08:55

» [RESOLVIDO]Spawn após morte
por Deception_1999 Dom 17 Dez 2023, 16:39

» Remunerado $$$ - Procuro programador para ajudar a "montar" um jogo
por theguitarmester Sáb 02 Dez 2023, 16:28

» Game maker nao abre
por Cerf Dom 26 Nov 2023, 12:01


Debugando

+2
Tiago Lima
saim
6 participantes

Ir para baixo

Debugando  Empty Debugando

Mensagem por saim Qui 06 Out 2011, 00:55

Nome: Debugando, ou usando o debug mode
Descrição: Esse tutorial ensia a usar o debug mode e, consequentemente, a resolver sozinho metade dos problemas de código.
Nível de dificuldade: iniciante.
Requerimentos: Qualquer versão do game maker (acredito que não haja diferenças entre as versões, mas me baseei no GM 8.0)
Desenvolvimento:


Já teve um problema que você saberia resolver se soubesse o valor das variáveis?
Ou um problema que você sente que daria pra se virar se o jogo rodasse mais devagarinho?
Bom, o game maker tem uma ferramenta que te possibilita isso. Chama-se “debug mode”.

No debug mode, você roda seu jogo e surge uma janelinha. Nessa janelinha, você pode visualizar muitas, se não todas, variáveis do seu jogo. O escopo desse tutorial consiste, basicamente, em ensinar a usar essa janelinha.
Debugando  X4lxc9

Entrando no debug mode:
Nada mais simples: sabe aquele “play” verde que você usa pra rodar o jogo? Existe um “play” vermelho logo ao lado dele. Clicando nesse segundo play, você roda o jogo em modo debug.
Ou você pode ir em "run-run in debug mode". Ou apertar F6.

mouse_id:
Ao passar o mouse sobre os objetos, um texto aparece no canto inferior direito da janela de debug. O texto diz “mouse_id=” e um número grande. Esse número é a id da instância sob o cursor do mouse. Isso será importante mais adiante.

Visualizando variáveis:
Pra visualizar variáveis, você clica no botão “+”. Aparecerá uma nova janela e, nela, você digita qual variável você quer acompanhar. A variável aparecerá numa tabela, com seu valor logo à direita.
Pra visualizar variáveis globais, basta digitar o nome da variável. Digite “room” e o índice da room em que o jogo estiver aparecerá ao lado. Digite o nome de algum objeto e o índice desse objeto (não das instâncias) aparecerá. Variáveis que comecem com “global.” requerem que você digite “global.” pra serem visualizadas.
Pra visualizar variáveis locais, você digita a id da instância, entre parênteses, seguido de um ponto e o nome da variável que você quer verificar. Exemplo:
(100357).speed
Você pode usar o mouse_id (ver acima) pra saber o valor da id da instância a ser observada. Pode-se digitar o nome do objeto seguido de ponto e o nome da variável, mas isso retornará apenas o valor da variável da instância com id mais baixo (a primeira instância do objeto).
Como as variáveis “var” deixam de existir logo após a execução do código, essas não podem ser verificadas diretamente. Há formas de verificá-las que serão abordadas mais adiante.

tools - todas as variáveis:
Bom, suponhamos que você esteja sem paciência pra escrever linha-por-linha quais variáveis você quer acompanhar. Você pode ir em "tools". Lá tem algumas opções auto-explicativas.
"show global variables" mostra todas as variáveis globais (inclusive aquelas que requerem o uso de "global.", mas não aparece o "global." no nome delas).
"show local variables" vai te pedir um objeto ou instância e mostrará todas as variáveis dele. A regra da primeira instância do objeto vale aqui também.
"show instances" vai te mostrar os ids das instâncias em jogo, e de quebra, o sprite_name de cada uma delas (o nome mesmo do sprite, não a id).
Finalmente, a última opção "show messages" é um pouco mais complexa. Existe a função "show_debug_message" que, aparentemente não faz nada. Pode colocar em qualquer lugar do seu jogo que, a menos que você consiga errar a sintaxe da função, você não notará a presença dela. Mas rodando em debug, indo em "tools-show messages", todas as strings dessa função estarão lá. Então, pra acompanhar o valor de uma var (lembra que eu disse que tinha jeito?), você pode colocar, NO PONTO DO CÓDIGO EM QUE VOCÊ QUER SABER O VALOR DELA, "show_debug_message(string(variável))".

velocidades:
Ainda é possível acelerar/retardar a velocidade de execução no modo debug. Vá em "tools-set speed" e digite a nova velocidade da room. Isso pode ser útil pra verificar, por exemplo, se a velocidade caiu a zero no momento em que o objeto colide com o outro ou só no step seguinte. Pode ser usado, também pra ver se o loop que você definiu é eficiente ou está exigindo demais da memória do computador - um jogo simples deveria rodar a 60 fps sem problemas, enquanto que um jogo mais complexo pode aceitar uns 40 fps.
Ah, sim, a velocidade real, em fps é mostrada no canto inferior esquerdo da janela de debug.
Você pode, também, paralisar o jogo todo e avançar step-por-step. Clique no botão de pausa que o jogo todo para. Há uma setinha que, ao ser clicada, permite que o jogo avance um step e pare de novo, dando todo o tempo que você precisa pra tentar visualizar porque foi que a variável que deveria ter mudado de valor não mudou (ou vice-versa).

novo debug
Ou: save e load. Se você conseguiu colocar na tela todas as variáveis que você quer visualizar e acha que descobriu o problema, NÃO feche o jogo para editá-lo ainda. Vá em "watch-save" e grave num arquivo de texto as variáveis que você estiver observando. Caso você esteja errado e a correção não seja efetiva, você vai querer resgatar quais variáveis são essas. Pra isso, vá em "watch-load" e selecione o arquivo. Esse arquivo pode ser editado manualmente.

debug_mode
"Ué, você não passou o tutorial todo falando sobre debug mode?" Sim, mas note o underline entre "debug" e "mode". Sim, é uma variável global (que não aparece em "show global variables" por motivos óbvios). Sim, ela é "true" quando você roda o jogo em debug mode e "false", de outra forma. E, sim, ela é útil.
Suponha que você determine um ponto através de coordenadas que são calculadas em código. Suponha que você desconfie que a posição calculada não é a que você queria. Ver o valor das variáveis ajuda, mas não te dá "aquela" segurança de que o ponto está no lugar certo ou não. Então, apele, use o draw event pra desenhar o ponto. Use draw_circle, sei lá. E, pra não correr o risco do seu jogo ser lançado com aquele círculo horroroso só porque você esqueceu de tirar uma linha de código, coloque esse desenho dentro de um "if debug_mode". Assim, no modo debug, o código será executado e o círculo aparecerá e, no jogo normal, não.

Fim. Espero que esse tutorial ajude iniciantes a serem um pouco mais arrojados e veteranos a verem seus erros sozinhos. Eu, mesmo, vou continuar dependendo da moçada daqui da comunidade... :oops:


Última edição por saim em Qui 06 Out 2011, 16:09, editado 3 vez(es)
saim
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : Debugando  Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

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

Ir para o topo Ir para baixo

Debugando  Empty Re: Debugando

Mensagem por Tiago Lima Qui 06 Out 2011, 07:52

Seu tutorial tá muito legal, realmente é uma obrigação, independente da linguagem que agente use, saber debugar o código, e seu tutorial tá bem instrutivo, a formatação (ou a falta dela) é o que confundi um pouco, mas você já sabe, né?

Bom tuto!
Tiago Lima
Tiago Lima

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 14/07/2008
Reputação : 17
Número de Mensagens : 199
Prêmios : Debugando  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

https://www.youtube.com/user/CanalNexteLevel

Ir para o topo Ir para baixo

Debugando  Empty Re: Debugando

Mensagem por Super Games Qui 06 Out 2011, 08:35

Um bom tutorial com certeza, eu mesmo não sabia utilizar o "Debug Mode".
Super Games
Super Games

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 10/06/2010
Reputação : 36
Número de Mensagens : 2799
Prêmios : Debugando  Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 1 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
  • Java
  • C ou C++


Ir para o topo Ir para baixo

Debugando  Empty Re: Debugando

Mensagem por All-x Qui 06 Out 2011, 09:05

Ótimo tutorial saim. Realmente seria impossível resolver certos problemas sem "debugar".

Dica: Pelo visto tu digitou no Word e colou aqui. Os espaçamentos entre os parágrafos foram "comidos" e o texto fica parerendo maior do que é.

Edit: Agora que vi seu EDIT sobre a formatação Very Happy.

FLWS!
All-x
All-x

Games Ranking : Nota A

Notas recebidas : B A
Data de inscrição : 20/12/2008
Reputação : 189
Número de Mensagens : 2571
Prêmios : Debugando  Empty

Medalhas x 0 Tutoriais x 25 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

Insignia 1 x 1 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
  • Javascript
  • C ou C++


https://redscreensoft.com

Ir para o topo Ir para baixo

Debugando  Empty Re: Debugando

Mensagem por Klior Qui 06 Out 2011, 09:16

Muito bom tutorial, eu uso muito o modo debug, acho indispensável o show_debug_message, variáveis local e variáveis globais, oque eu ainda não conhecia é sobre a variável debug_mode, achei bem interessante.
Klior
Klior

Data de inscrição : 07/03/2010
Reputação : 13
Número de Mensagens : 426
Prêmios : Debugando  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
  • C#
  • Javascript


Ir para o topo Ir para baixo

Debugando  Empty Re: Debugando

Mensagem por JV Justino Qui 06 Out 2011, 11:33

Ótimo tutorial Saim!

Sempre uso o debug quando tenho problemas e não consigo resolvê-los. Também o uso quando vou fazer alguns testes dentro do jogo.

Enfim, o tutorial está ótimo e bem explicado.
Aprovado!

flw
JV Justino
JV Justino

Games Ranking : Nota A

Notas recebidas : A+A
Data de inscrição : 07/12/2010
Reputação : 20
Número de Mensagens : 619
Prêmios : Debugando  Empty

Medalhas x 0 Tutoriais x 13 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

Debugando  Empty Re: Debugando

Mensagem por saim Qui 06 Out 2011, 16:05

Tsurugi Kyousuke escreveu:eu mesmo não sabia utilizar o "Debug Mode".
Foi o que me motivou a elaborar o tutorial. Notei que muitas dúvidas da comunidade, em geral, não existiriam se todo mundo soubesse usar o debug.

Alex FC escreveu:Edit: Agora que vi seu EDIT sobre a formatação Very Happy.
Não, na verdade o que eu quis dizer era aquele cabeçalho. Os parágrafos estão inteiros mesmo, acho... Vou dar mais uma conferida, mas não achei nenhuma linha comida, na primeira passada de olhos.

Klior escreveu:oque eu ainda não conhecia é sobre a variável debug_mode
Eu também não! :oops: Fui pesquisar, pra fazer um tutorial completo, e dei de cara com ela. É o que dizem, a melhor forma de aprender é ensinar...
saim
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : Debugando  Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

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

Ir para o topo Ir para baixo

Debugando  Empty Re: Debugando

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

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