Entrar
Ú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
[Tutorial] Variáveis
+4
Markituh
sonic luan
Math Maker
saim
8 participantes
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
[Tutorial] Variáveis
Título: Um olhar sobre as variáveis
Nível: Iniciante
Descrição: Notei que alguns usuários estão com dificuldades com relação ao endereçamento de variáveis. Existem aulas para iniciantes que tocam no assunto, mas não vão a fundo. Minha intenção com esse tutorial é dirimir qualquer dúvida que possa vir a existir nesse assunto. Apesar do nível do tutorial ser bem básico, recomendo a usuários intermediários que também dêm uma olhada, pois algumas nuances podem ficar despercebidas por toda uma vida. Obviamente, eu também posso deixar passar alguns detalhes ou errar em alguma informação, portanto se você notar alguma falha, peço que informe, para que o tutorial fique completo.
Introdução:
Variáveis são a base da programação. Tudo é baseado em variáveis. A posição de um objeto na tela é definido pelas variáveis "x" e "y". A forma como ele é desenhado é definida pelas variáveis "sprite_index" e "image_index". O Game Maker tem uma série de variáveis nativas (ou seja, já vêm definidas pelo programa) e você pode definir uma infinidade de variáveis próprias.
Pra fazer um objeto se mexer, você usa variáveis. Pra testar uma colisão, outras variáveis são computadas. Para disparar um raio lazer enquanto estiver deslizando na parede e fazer com que ele reflita em um espelho posicionado no ângulo tal que atinja a cabeça (e não o torso) de um inimigo... você provavelmente precisará de dezenas ou até centenas de variáveis.
É impossível fazer um jogo sem usar nenhuma variável. O game maker está aberto? Se sim, então já existem diversas variáveis definidas.
O que são variáveis:
Variáveis são valores que, ao contrário das constantes, podem variar. Sim, é uma explicação idiota, mas a mais precisa possível. Mas tem mais.
Algumas variáveis podem ser alteradas pelo programador, ao passo que outras, uma vez definidas, ficam estáticas. Sim, algumas variáveis não variam, mas ainda assim são chamadas de variáveis. Alguns exemplos são aquelas definidas para se referir a algum recurso, seja ele uma instância de objeto, índice do objeto, som, script, room, etc. Elas têm valores gerados sequencial e automaticamente que podem ser usados como referência, mas não alterados.
Não sei ao certo, mas provavelmente são assim chamadas por adquirirem valores diferentes para cada recurso.
Tipos de variáveis:
Existem dois tipos de variáveis: texto e número real (string e real). No game maker, não é necessário declarar o tipo de variável que você está usando, apenas declare a variável e o programa saberá de que tipo se trata. Lembre-se, apenas, de usar aspas ao declarar variáveis de texto. Por exemplo "20", com aspas, é um texto e 20, sem aspas, é um valor numérico.
Booleanas:
Variáveis booleanas (que têm esse nome por causa de seu criador, George Boole - Valeu, Markituh) recebem apenas dois tipos de valores: true (verdadeiro) e false (falso). Na prática, esses valores são 1 (true, verdadeiro) e 0 (false, falso). Você pode usar 1 e 0 para se referir às booleanas. Você pode até esquecer que 1 significa verdadeiro e 0 significa falso, se quiser (embora essa informação seja muito útil na hora de raciocinar seus códigos). Isso faz das booleanas um sub-tipo do tipo "número real".
[dicas]
- Booleanas também podem ser usadas como números. Algumas funções retornam valores booleanos. Esses valores podem ser usados como 0 e 1.
- usar "!" antes da booleana inverte seu valor. "0" passa a ser "1" e "1" passa a ser "0".
corolário: você pode usar essas informações para economizar muitas linhas de código, em alguns casos.
Declaração e escopo de uma variável:
Não existe mistério algum em declarar uma variável, no game maker. Basta digitar seu nome, um sinal de igual (=) e o valor, logo em seguida.
A resposta para muitos erros de programação reside em compreender o escopo de uma variável. Basicamente, uma variável pode ser local ou global. Uma variável local existirá somente nas instâncias em que ela for declarada. Uma variável global existirá em todos os locais do jogo, a partir do momento em que ela for declarada.
Existem duas formas de declarar uma variável global. O primeiro, mais popular, consiste em digitar "global.", antes do nome da variável. Para usar esse método, é imprescindível que sempre seja usado o texto "global." antes do nome da variável, seja para declará-la, alterar seu valor ou referir-se a ele. Esse método tem a vantagem de deixar bem claro quais variáveis são globais e quais são locais. A desvantagem é que é muito chato digitar "global." toda vez que quiser se referir a uma variável.
- pra ser usada como um contador
- pra armazenar resultados de equações complexas, que poderá ser usado repetidas vezes no mesmo código (como o delta da equação de báskara).
- pra armazenar o retorno de alguma função (como a id de uma instância, por exemplo), que poderá ser usado para se referir àquele resultado.
A vantagem de usar uma variável var é que ao final do código, você pode esquecer da existência dela sem prejuízos à programação. Esquecendo que ela existe, você pode usar o mesmo nome de variável para fins completamente distintos. Por exemplo, a mesma variável var pode ser usada como valor numérico no create event e como valor de texto no draw event. Quer dizer, o mesmo nome de variável. A variável será outra, porque sendo uma var, ela será apagada da memória, no final de cada evento.
Variáveis em outras instâncias:
[pausa]
Lembra que para usar uma variável global, podemos usar "global." antes da variável? Deixa eu te contar um segredo: "global" é um objeto persistente especial do game maker. "persistente" significa que ele existe em todas as rooms, ainda que você não o coloque lá.
Sério, global é um objeto especial. A id dele é "-5". Você pode substituir "global" por "-5" e testar. Funciona.
Os objetos especiais que eu conheço e suas id's são:
[/pausa]
Suponhamos que você tenha um personagem que corra contra o tempo em cada fase. Cada fase tem um tempo diferente pra ser cumprida e o personagem deve morrer se esse tempo chegar a zero. O mais sensato é definir esse tempo em um objeto controlador e, no personagem, checar se esse tempo chegou a zero e, em caso positivo, iniciar a sequência de morrer. Mas "tempo" não é uma variável global nem está dentro do personagem, então como fazer para o personagem saber se "tempo" chegou a zero ou não?
Você indica, no lugar em que for se endereçar à variável, qual o objeto em que ela está. Como, no caso, seria o obj_controle, o código do personagem seria mais ou menos assim:
Você irá armazenar a instância do último objeto tocado numa variável e usar essa variável como forma de endereçamento.
Bom, acho que consegui extenuar o assunto. Caso exista algum aspecto do assunto que não foi abordado ou que não tenha ficado claro, por favor, comente. Fiz o tutorial na intenção de eliminar qualquer dúvida a respeito de variáveis. Se ainda houver alguma, após a leitura do mesmo, ele está incompleto e precisa ser atualizado.
Abraços
saim.
Nível: Iniciante
Descrição: Notei que alguns usuários estão com dificuldades com relação ao endereçamento de variáveis. Existem aulas para iniciantes que tocam no assunto, mas não vão a fundo. Minha intenção com esse tutorial é dirimir qualquer dúvida que possa vir a existir nesse assunto. Apesar do nível do tutorial ser bem básico, recomendo a usuários intermediários que também dêm uma olhada, pois algumas nuances podem ficar despercebidas por toda uma vida. Obviamente, eu também posso deixar passar alguns detalhes ou errar em alguma informação, portanto se você notar alguma falha, peço que informe, para que o tutorial fique completo.
Introdução:
Variáveis são a base da programação. Tudo é baseado em variáveis. A posição de um objeto na tela é definido pelas variáveis "x" e "y". A forma como ele é desenhado é definida pelas variáveis "sprite_index" e "image_index". O Game Maker tem uma série de variáveis nativas (ou seja, já vêm definidas pelo programa) e você pode definir uma infinidade de variáveis próprias.
Pra fazer um objeto se mexer, você usa variáveis. Pra testar uma colisão, outras variáveis são computadas. Para disparar um raio lazer enquanto estiver deslizando na parede e fazer com que ele reflita em um espelho posicionado no ângulo tal que atinja a cabeça (e não o torso) de um inimigo... você provavelmente precisará de dezenas ou até centenas de variáveis.
É impossível fazer um jogo sem usar nenhuma variável. O game maker está aberto? Se sim, então já existem diversas variáveis definidas.
O que são variáveis:
Variáveis são valores que, ao contrário das constantes, podem variar. Sim, é uma explicação idiota, mas a mais precisa possível. Mas tem mais.
Algumas variáveis podem ser alteradas pelo programador, ao passo que outras, uma vez definidas, ficam estáticas. Sim, algumas variáveis não variam, mas ainda assim são chamadas de variáveis. Alguns exemplos são aquelas definidas para se referir a algum recurso, seja ele uma instância de objeto, índice do objeto, som, script, room, etc. Elas têm valores gerados sequencial e automaticamente que podem ser usados como referência, mas não alterados.
Não sei ao certo, mas provavelmente são assim chamadas por adquirirem valores diferentes para cada recurso.
Tipos de variáveis:
Existem dois tipos de variáveis: texto e número real (string e real). No game maker, não é necessário declarar o tipo de variável que você está usando, apenas declare a variável e o programa saberá de que tipo se trata. Lembre-se, apenas, de usar aspas ao declarar variáveis de texto. Por exemplo "20", com aspas, é um texto e 20, sem aspas, é um valor numérico.
Booleanas:
Variáveis booleanas (que têm esse nome por causa de seu criador, George Boole - Valeu, Markituh) recebem apenas dois tipos de valores: true (verdadeiro) e false (falso). Na prática, esses valores são 1 (true, verdadeiro) e 0 (false, falso). Você pode usar 1 e 0 para se referir às booleanas. Você pode até esquecer que 1 significa verdadeiro e 0 significa falso, se quiser (embora essa informação seja muito útil na hora de raciocinar seus códigos). Isso faz das booleanas um sub-tipo do tipo "número real".
[dicas]
- Booleanas também podem ser usadas como números. Algumas funções retornam valores booleanos. Esses valores podem ser usados como 0 e 1.
- usar "!" antes da booleana inverte seu valor. "0" passa a ser "1" e "1" passa a ser "0".
corolário: você pode usar essas informações para economizar muitas linhas de código, em alguns casos.
- Código:
gravity=!place_meeting(x,y+1,obj_chão)*0.5
// "gravity" (gravidade) é uma variável nativa que altera outra variável nativa, a "speed" (velocidade),
// que, por sua vez, altera ainda outra variável nativa, a posição do objeto
- Código:
x+=(keyboard_check(vk_right)-keyboard_check(vk_left))*2
// "keyboard_check" é uma função que verifica se a tecla está apertada
// "vk_right" significa "seta para a direita" e "vk_left" significa "seta para a esquerda"
// ambas são constantes nativas e seus valores são, respectivamente, 39 e 37
Declaração e escopo de uma variável:
Não existe mistério algum em declarar uma variável, no game maker. Basta digitar seu nome, um sinal de igual (=) e o valor, logo em seguida.
- Código:
variavel=valor
A resposta para muitos erros de programação reside em compreender o escopo de uma variável. Basicamente, uma variável pode ser local ou global. Uma variável local existirá somente nas instâncias em que ela for declarada. Uma variável global existirá em todos os locais do jogo, a partir do momento em que ela for declarada.
Existem duas formas de declarar uma variável global. O primeiro, mais popular, consiste em digitar "global.", antes do nome da variável. Para usar esse método, é imprescindível que sempre seja usado o texto "global." antes do nome da variável, seja para declará-la, alterar seu valor ou referir-se a ele. Esse método tem a vantagem de deixar bem claro quais variáveis são globais e quais são locais. A desvantagem é que é muito chato digitar "global." toda vez que quiser se referir a uma variável.
- Código:
global.variável=valor
- Código:
globalvar variável;
variável=valor
- Código:
var variável;
variável=valor
- pra ser usada como um contador
- pra armazenar resultados de equações complexas, que poderá ser usado repetidas vezes no mesmo código (como o delta da equação de báskara).
- pra armazenar o retorno de alguma função (como a id de uma instância, por exemplo), que poderá ser usado para se referir àquele resultado.
A vantagem de usar uma variável var é que ao final do código, você pode esquecer da existência dela sem prejuízos à programação. Esquecendo que ela existe, você pode usar o mesmo nome de variável para fins completamente distintos. Por exemplo, a mesma variável var pode ser usada como valor numérico no create event e como valor de texto no draw event. Quer dizer, o mesmo nome de variável. A variável será outra, porque sendo uma var, ela será apagada da memória, no final de cada evento.
Variáveis em outras instâncias:
[pausa]
Lembra que para usar uma variável global, podemos usar "global." antes da variável? Deixa eu te contar um segredo: "global" é um objeto persistente especial do game maker. "persistente" significa que ele existe em todas as rooms, ainda que você não o coloque lá.
Sério, global é um objeto especial. A id dele é "-5". Você pode substituir "global" por "-5" e testar. Funciona.
Os objetos especiais que eu conheço e suas id's são:
Cada um deles tem características próprias. Legal, né? Qualquer dia a gente toma uma cerveja e fala mais sobre isso.self: -1
other: -2
all: -3
noone: -4
global: -5
local: -7
[/pausa]
Suponhamos que você tenha um personagem que corra contra o tempo em cada fase. Cada fase tem um tempo diferente pra ser cumprida e o personagem deve morrer se esse tempo chegar a zero. O mais sensato é definir esse tempo em um objeto controlador e, no personagem, checar se esse tempo chegou a zero e, em caso positivo, iniciar a sequência de morrer. Mas "tempo" não é uma variável global nem está dentro do personagem, então como fazer para o personagem saber se "tempo" chegou a zero ou não?
Você indica, no lugar em que for se endereçar à variável, qual o objeto em que ela está. Como, no caso, seria o obj_controle, o código do personagem seria mais ou menos assim:
- Código:
if obj_controle.tempo==0
tem_que_morrer=true
Você irá armazenar a instância do último objeto tocado numa variável e usar essa variável como forma de endereçamento.
- Código:
//no evento de colisão com obj_controle:
meu_controle=other //other, num evento de colisão, é o outro objeto
- Código:
//no evento step:
if meu_controle.tempo==0
tem_que_morrer=true
- Spoiler:
- Se você quiser testar, pode colocar, no create event:
- Código:
tem_que_morrer=false //essa variável também será usada, então tem que ser inicializada
meu_controle=obj_controle //isso escolhe uma instância do objeto (a primeira criada) e evita a ocorrência de erros.
// na primeira colisão, a variável será atualizada
- Código:
draw_sprite(sprite_index,image_index,x,y)
draw_text(x,y,string(tem_que_morrer))
draw_text(x,y,string(meu_controle.tempo))
Bom, acho que consegui extenuar o assunto. Caso exista algum aspecto do assunto que não foi abordado ou que não tenha ficado claro, por favor, comente. Fiz o tutorial na intenção de eliminar qualquer dúvida a respeito de variáveis. Se ainda houver alguma, após a leitura do mesmo, ele está incompleto e precisa ser atualizado.
Abraços
saim.
Última edição por saim em Sex 01 Abr 2011, 23:02, editado 3 vez(es)
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: [Tutorial] Variáveis
Muito bom o tutorial, essa coisa do global eu nem tava ligado. Como você disse é muito bom para os intermediários (creio que me encaixe nesse nível) darem também uma lida nesse tutorial.
Um ponto que eu acho que estão ou confusos (e eu que não estou conseguindo interpretar de forma correta) ou você errou mesmo:
Nunca vi necessidade de armazenar valores alternados numa mesma variável, em todo caso uso o GM 8 e ao tentar alternar de uma str para real, não ocasionou nenhum erro, e mais, o valor foi alterado. Ocorreria o erro se estivesse usando essa variável como real para um desenho por exemplo.
Não sei se suas pergunta se referia bem a isso, mas está ai: As constantes true e false valem, respectivamente, 1 e 0. Ou seja, var = true é a mesma coisa que var = 1.
É isso ai, valeu a pena dar uma parada e ler, muito bom! Espero ver mais tutoriais seu!
Um ponto que eu acho que estão ou confusos (e eu que não estou conseguindo interpretar de forma correta) ou você errou mesmo:
saim escreveu:Uma vez definido o tipo de variável, ele não pode ser alterado. Portanto, se você tentar atribuir o valor 20 a uma variável que, antes, tinha o valor "vinte", o programa retornará um erro. É possivel, porém, atribuir a essa variável o valor "20", entre aspas, pois isso faz com que ele seja tratado como texto.
Nunca vi necessidade de armazenar valores alternados numa mesma variável, em todo caso uso o GM 8 e ao tentar alternar de uma str para real, não ocasionou nenhum erro, e mais, o valor foi alterado. Ocorreria o erro se estivesse usando essa variável como real para um desenho por exemplo.
saim escreveu:No game maker, valores maiores ou iguais a 1 também são tratados como "verdadeiro" e valores menores ou iguais a 0 são tratados como "falso". Não tenho certeza, mas acredito que valores entre 0 e 1 também são tratados como "falso". Quem fizer o teste, por favor me corrija.
Não sei se suas pergunta se referia bem a isso, mas está ai: As constantes true e false valem, respectivamente, 1 e 0. Ou seja, var = true é a mesma coisa que var = 1.
É isso ai, valeu a pena dar uma parada e ler, muito bom! Espero ver mais tutoriais seu!
Math Maker- Data de inscrição : 26/02/2011
Reputação : 6
Número de Mensagens : 107
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Tutorial] Variáveis
otimo tutorial, quando eu era iniciante fiquei muito confuso com variaveis porque não sabia o que eram e para que serviam, muito bom.
Re: [Tutorial] Variáveis
Boolean não tem tradução. É a mesma coisa do mal de Alzheimer, a doença tem o nome do cientista que a descobriou. A mesma coisa ocorre com a lógica booleana, é o sobrenome do cara que criou ela, George Boole.
Gostei do seu tutorial, tem umas coisas que eu nem sabia, como os "objetos-variáveis". E há um erro em um códigol:
Gostei do seu tutorial, tem umas coisas que eu nem sabia, como os "objetos-variáveis". E há um erro em um códigol:
- Código:
x+=((keyboard_check(vk_right)-keyboard_check(vk_left))*2
// "keyboard_check" é uma função que verifica se a tecla está apertada
// vk_right significa "seta para a direita" e "vk_left" significa "seta para a esquerda"
// ambas são constantes nativas e seus valores são, respectivamente, 39 e 37
Markituh- Games Ranking :
Data de inscrição : 11/10/2009
Reputação : 106
Número de Mensagens : 2184
Prêmios :
x 0 x 1 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Tutorial] Variáveis
A necessidade de alterar o tipo de variável não existe mesmo, mas o erro é comum.Math Maker escreveu:saim escreveu:Uma vez definido o tipo de variável, ele não pode ser alterado. Portanto, se você tentar atribuir o valor 20 a uma variável que, antes, tinha o valor "vinte", o programa retornará um erro. É possivel, porém, atribuir a essa variável o valor "20", entre aspas, pois isso faz com que ele seja tratado como texto.
Nunca vi necessidade de armazenar valores alternados numa mesma variável, em todo caso uso o GM 8 e ao tentar alternar de uma str para real, não ocasionou nenhum erro, e mais, o valor foi alterado. Ocorreria o erro se estivesse usando essa variável como real para um desenho por exemplo.
É perfeitamente possível transformar um valor de texto em valor numérico, mas não
saim escreveu:No game maker, valores maiores ou iguais a 1 também são tratados como "verdadeiro" e valores menores ou iguais a 0 são tratados como "falso". Não tenho certeza, mas acredito que valores entre 0 e 1 também são tratados como "falso". Quem fizer o teste, por favor me corrija.
Não, não. Fazendo uns testes, notei que a pergunta realmente é descabida. Quis dizer o seguinte: Algumas vezes, ao usar o "if", não colocamos um comparativo. Tipo assim:Math Maker escreveu:Não sei se suas pergunta se referia bem a isso, mas está ai: As constantes true e false valem, respectivamente, 1 e 0. Ou seja, var = true é a mesma coisa que var = 1.
- Código:
if teste==true //com comparativo
- Código:
if teste //sem comparativo
Obrigado. A idéia realmente é ajudar quem está só começando. Notei que alguns novos membros estão tendo dificuldades com escopo de variáveis e achei melhor falar tudo sobre o assunto de uma vez pra poder mandar um link pra eles.sonic luan escreveu:otimo tutorial, quando eu era iniciante fiquei muito confuso com variaveis porque não sabia o que eram e para que serviam, muito bom.
Valeu, Markituh! Já corrigi o erro e vou acrescentar a informação.Markituh escreveu:Boolean não tem tradução. É a mesma coisa do mal de Alzheimer, a doença tem o nome do cientista que a descobriou. A mesma coisa ocorre com a lógica booleana, é o sobrenome do cara que criou ela, George Boole.
Gostei do seu tutorial, tem umas coisas que eu nem sabia, como os "objetos-variáveis". E há um erro em um códigol:Tem um "(" a mais, no começo da declaração. "(<--(keyb[...]" Fora isso, seu tutorial está ótimo. Vou ver se faço um Bomberman da vida com ele xD
- Código:
x+=((keyboard_check(vk_right)-keyboard_check(vk_left))*2
// "keyboard_check" é uma função que verifica se a tecla está apertada
// vk_right significa "seta para a direita" e "vk_left" significa "seta para a esquerda"
// ambas são constantes nativas e seus valores são, respectivamente, 39 e 37
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: [Tutorial] Variáveis
Oi cara,qualidade do tutorial 100% mesmo!!,mais eu tenho uma dúvida em variáveis de outras instâncias..você precisou declarar a variável "tempo" antes de colocar o código if obj_controle.tempo==0? É só essa dúvida mesmo muito obrigado pelo tutorial!!
Bruno Mota- Data de inscrição : 17/11/2012
Reputação : 0
Número de Mensagens : 12
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Tutorial] Variáveis
Precisa sim, Bruno Mota. Se você fizer qualquer operação ou verificação com uma variável que não foi declarada, o programa pira. Existe uma salvaguarda que é "tratar as variáveis não inicializadas como zero", que você pode ligar em global game settings, mas você pode imaginar, inclusive a partir desse exemplo usado no tutorial, a quantidade de bugs que usar essa medida causará. Só recomendo (com muitas ressalvas) pra fase de testes de qualquer jogo.Bruno Mota escreveu:você precisou declarar a variável "tempo" antes de colocar o código if obj_controle.tempo==0?
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: [Tutorial] Variáveis
Opa obrigadão..desculpe te incomodar mais uma vez,mais assim hoje no meu jogo eu fui declarar a variável "direita = {x+=5}" e apareceu que o código estava errado,o que eu faço?
Bruno Mota- Data de inscrição : 17/11/2012
Reputação : 0
Número de Mensagens : 12
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Tutorial] Variáveis
O erro, aí, está na sintaxe. Use parênteses "()" ao invé de colchetes "{}" que está resolvido. Ou simplesmente elimine os colchetes.
Colchetes são usados pra separar um conjunto de códigos do resto do código, como "o que é pra fazer quando o 'if' for verdadeiro". Os parênteses são realmente interpretados como símbolos matemáticos, usados pra separar trechos da equação.
Edit: Ah, e as chaves "[]" são usadas pra indexar arrays.
Embora você tenha aprendido que chaves e colchetes possam ser usados pra separar trechos de equações, esqueça isso enquanto estiver programando.
Colchetes são usados pra separar um conjunto de códigos do resto do código, como "o que é pra fazer quando o 'if' for verdadeiro". Os parênteses são realmente interpretados como símbolos matemáticos, usados pra separar trechos da equação.
Edit: Ah, e as chaves "[]" são usadas pra indexar arrays.
Embora você tenha aprendido que chaves e colchetes possam ser usados pra separar trechos de equações, esqueça isso enquanto estiver programando.
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: [Tutorial] Variáveis
Ainda não funcionou não,eu coloquei "direita=x+=5;" e não deu certo ai eu também coloquei "direita=(x+=5)" e também não deu certo,para você entender melhor o que eu estou fazendo é o seguinte,eu estou criando um jogo de cobrinha ai eu fiz um patinho que vai ser um dos alimentos da cobrinha ai eu precisava que o patinho andava 5 pixels pra direita e mudava seu sprite para o da esquerda e esse patinho da esquerda iria andar mais 5 pixels e mudaria seu sprite para direita e assim por diante,ai eu preciso definir as variáveis para fazer ele mudar de sprite,entendeu? mais acontece esse problema,se poder me ajudar ficarei muito grato.
Bruno Mota- Data de inscrição : 17/11/2012
Reputação : 0
Número de Mensagens : 12
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Tutorial] Variáveis
Oops, li errado sua dúvida. Eu tinha lido "direita={x+5}".
Não, você está fazendo uma instrução seguida da outra na mesma linha. Ou use duas linhas pra isso ou separe as instruções usando ";", que o computador interpretará como o fim da linha (no caso do game maker, basta um espaço pra isso, mas o código fica uma bagunça ilegível - pra humanos. Use o ";").
Quanto à dúvida específica, ela foge um pouco do tema do tutorial, então vou responder por MP, ok?
Não, você está fazendo uma instrução seguida da outra na mesma linha. Ou use duas linhas pra isso ou separe as instruções usando ";", que o computador interpretará como o fim da linha (no caso do game maker, basta um espaço pra isso, mas o código fica uma bagunça ilegível - pra humanos. Use o ";").
Quanto à dúvida específica, ela foge um pouco do tema do tutorial, então vou responder por MP, ok?
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: [Tutorial] Variáveis
ótimo tutorial cara!
Aprendi umas coisas com ele(por exemplo, não sabia que existia o comando " gravity " o.O )
Obrigado ae por postar.
Aprendi umas coisas com ele(por exemplo, não sabia que existia o comando " gravity " o.O )
Obrigado ae por postar.
peixoto- Games Ranking :
Notas recebidas : D
Data de inscrição : 14/02/2010
Reputação : 3
Número de Mensagens : 911
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Tutorial] Variáveis
Excelente saim!
Eu ja supunha que existiam objetos ocultos no Game Maker, mas n&o sabia quais eram (self -1, other -2, all -3, noone -4, global -5, local -7).
vlw.
Eu ja supunha que existiam objetos ocultos no Game Maker, mas n&o sabia quais eram (self -1, other -2, all -3, noone -4, global -5, local -7).
vlw.
Camin- Data de inscrição : 26/03/2011
Reputação : 9
Número de Mensagens : 101
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Tutorial] Variáveis
Creio que vc inverteu os nomes dos sinais.saim escreveu:O erro, aí, está na sintaxe. Use parênteses "()" ao invé de colchetes "{}" que está resolvido. Ou simplesmente elimine os colchetes.
Colchetes são usados pra separar um conjunto de códigos do resto do código, como "o que é pra fazer quando o 'if' for verdadeiro". Os parênteses são realmente interpretados como símbolos matemáticos, usados pra separar trechos da equação.
Edit: Ah, e as chaves "[]" são usadas pra indexar arrays.
[ ] são colchetes e { } são chaves.
Sewer Crawler- Data de inscrição : 08/10/2014
Reputação : 27
Número de Mensagens : 236
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Tópicos semelhantes
» [Tutorial] Variáveis o que são?
» [Tutorial] Variáveis em HTML5 + Javascript
» [TUTORIAL] Exemplo de Variáveis Globais em um mini jogo.
» [XCREATOR] [TUTORIAL] Armazenamento e Recuperação Automática de Variáveis
» tutorial explicando sobre variaveis e expressoes ideal para iniciantes
» [Tutorial] Variáveis em HTML5 + Javascript
» [TUTORIAL] Exemplo de Variáveis Globais em um mini jogo.
» [XCREATOR] [TUTORIAL] Armazenamento e Recuperação Automática de Variáveis
» tutorial explicando sobre variaveis e expressoes ideal para iniciantes
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|