DESVENDANDO AS JANELAS DE ERRO EM RGSS
Por Alex Crosslight
Citar
Scripts RGSS, Resources, Tutorials and Translations by Alexander Ernest Crosslight is licensed under a
Creative Commons Atribuição-Uso não-comercial-Compartilhamento pela mesma licença 3.0 Brasil License.
Permissions beyond the scope of this license may be available at Atelier Cross
Este tutorial é exclusivo do Atelier Cross, sites parceiros e afiliados. Sua disponibilização sem meu consentimento é expressamente proibida.
INTRODUÇÃO
Citar
Comumente ao criar ou testar um script, quando ocorre um erro, nos deparamos com as famosas janelas que mostram algo que os iniciantes não entendem bolhunfas alguma e automaticamente fecham o projeto em teste ou jogo em execução. Geralmente, elas alertam erros mais simples ou mais graves dependendo do que ocorreu na leitura do script em questão.
O objetivo desse guia é desvendar essas janelas e analisar o que cada mensagem de erro nos trás informando o erro em um certo script.
ESTRUTURA DA JANELA DE ERRO
Em Azul, informa qual script gerou o erro apresentado, no caso acima, o script foi o Scene_Menu.
Em vermelho, mostra a linha que ocorreu o problema, no caso acima, a linha 16
Em amarelo escuro, mostra o tipo do erro, o que analisaremos logo a seguir, e no caso acima, o tipo do erro foi um “NameError”
Em amarelo claro, temos uma descrição do erro, mostrando como ocorreu o erro e por que.
OS MELIANTES
A partir de agora, iremos analisar detalhadamente cada tipo de erro possível de ser gerado na hora do test-drive em um script, ainda pegando o exemplo acima, vamos ver qual tipo de erro nos foi apresentado:
O “NameError” é o tipo de erro ligado principalmente a falta de definição de termos em um script, geralmente quando o interpretador chega em um termo e não sabe o que ele faz ou a o que ele está ligado, no caso acima, o termo “menu_index” não foi declarado ou interligado a um valor, e por isso deu erro no script Scene_Menu.
O tipo de erro “ArgumentError” estará ligado a declaração incorreta da quantidade de argumentos para um método, no caso acima, o método da linha 36 necessita de 2 argumentos, e para ele foi declarado apenas 1.
Resolver isso também é prático, basta apenas concertar o numero de argumentos entre parênteses, sempre lembrando que os argumentos são separados por virgula. Para saber o numero correto de argumentos, ao analisar a segunda linha da janela de erro e atentar-se a esse trecho: X for Y, o numero de argumentos certos será X, e o que foi declarado é Y.
O Tipo de erro ‘SyntaxError’ é ligado a erros de sintaxe, muitas vezes cometidos por pequenos erros de digitação no script, resolver é simples, bastas ir na linha onde aponta o erro e ver o que você digitou errado.
Assim como o “NameError”, erros do tipo “NoMethodError” também podem estar ligados na maioria das vezes com falta de declarações ou especificações, só que ele é um erro mais fechado para métodos, no exemplo acima, o método luko_felapota não foi devidamente declarado na classe Game_Map, e quando ela foi usada e a mesma recebeu o método, gerou esse erro.
O ‘Typeerror” é o tipo de erro que convenientemente são operações feitas com objetos de tipos indevidos, ou seja, você tentar somar um objeto do tipo String “texto” com um objeto do tipo Integer (Numero inteiro) por exemplo.
CONSIDERAÇÕES
Este tutorial é bem antiguinho, então ficaria agradecido se você caro leitor me reportasse algum ensinamento errôneo ou coisa do gênero, não deixem de mandar sugestões e dicas para próximas aulas.
EXERCICIO
Sem testar o script abaixo, identifique 3 erros que podem ocorrer, mostrando o numero da linha do erro, o tipo do erro e o porque.
classAkimenerus<Window_Base def initialize super(0,0,600) self.contents =Bitmap.new(width -32,height -32) update end def update refresh end def refresh self.contents.clear actor = $game_party.actors[0 draw_actor_face(actor,0,0) endend
AGRADECIMENTOS
Citar
> Rafidelis pelo toque de colocar exercícios ao final de tutoriais.
> Desenvolvido por Alex Crosslight.