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


[Tutorial] Variáveis

+4
Markituh
sonic luan
Math Maker
saim
8 participantes

Ir para baixo

[Tutorial] Variáveis Empty [Tutorial] Variáveis

Mensagem por saim Sex 01 Abr 2011, 11:32

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.
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
[/dicas]

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
O mistério todo reside em definir seu escopo.
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
O outro método requer que, antes de declarar a variável, você a apresente ao programa como global. Você digita, numa linha, "globalvar", o nome da variável, um ";". Na linha seguinte, a variável já será global, bastando declarar seu valor. Muito parecida com as variáveis "var", a serem apresentadas a seguir.
Código:
globalvar variável;
variável=valor
Existem, ainda, as variáveis "var". Variáveis "var" são as únicas que precisam ser apresentadas ao programa antes de serem declaradas. Para declarar uma variável "var", usamos a seguinte sintaxe:
Código:
var variável;
variável=valor
Elas têm a particularidade de serem apagadas da memória ao fim do código. Pra que serve uma variável que será apagada ao final do código, ou seja, não será usada em outros eventos? Pra muita coisa.
- 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:
self: -1
other: -2
all: -3
noone: -4
global: -5
local: -7
Cada um deles tem características próprias. Legal, né? Qualquer dia a gente toma uma cerveja e fala mais sobre isso.
[/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
Suponha, agora, que exista mais de um obj_controle na fase, cada um com uma variável "tempo" de valor diferente. Difícil adivinhar qual valor será retornado pelo código acima, certo? A princípio pode ser qualquer um (na verdade, será o do primeiro objeto criado, mas isso foge do assunto). Então precisamos definir a INSTANCIA que controlará o tempo do objeto. Suponha que você precise considerar apenas a variável do último obj_controle que o personagem tocou.
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
Claro que, se "meu_controle" não estiver definido logo que o objeto for criado, o jogo retornará um erro do primeiro step até aquele em que houver a primeira colisão, onde a variável será definida. Existem várias formas de se contornar esse problema, que não são o assunto em questão.
Spoiler:

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
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 : [Tutorial] Variáveis 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

[Tutorial] Variáveis Empty Re: [Tutorial] Variáveis

Mensagem por Math Maker Sex 01 Abr 2011, 15:03

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:

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
Math Maker

Data de inscrição : 26/02/2011
Reputação : 6
Número de Mensagens : 107
Prêmios : [Tutorial] Variáveis 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

[Tutorial] Variáveis Empty Re: [Tutorial] Variáveis

Mensagem por sonic luan Sex 01 Abr 2011, 18:04

otimo tutorial, quando eu era iniciante fiquei muito confuso com variaveis porque não sabia o que eram e para que serviam, muito bom.
sonic luan
sonic luan

Games Ranking : Nota C

Notas recebidas : C-D-A-C
Data de inscrição : 28/01/2011
Reputação : 18
Número de Mensagens : 1003
Prêmios : [Tutorial] Variáveis Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 1

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

http://sonicmaker.forumeiros.com/memberlist

Ir para o topo Ir para baixo

[Tutorial] Variáveis Empty Re: [Tutorial] Variáveis

Mensagem por Markituh Sex 01 Abr 2011, 19:47

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:
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
Tem um "(" a mais, no começo da declaração. "(<--(keyb[...]" Happy Fora isso, seu tutorial está ótimo. Vou ver se faço um Bomberman da vida com ele xD
Markituh
Markituh

Games Ranking : Sem avaliações

Data de inscrição : 11/10/2009
Reputação : 106
Número de Mensagens : 2184
Prêmios : [Tutorial] Variáveis 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

[Tutorial] Variáveis Empty Re: [Tutorial] Variáveis

Mensagem por saim Sex 01 Abr 2011, 22:58

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.
A necessidade de alterar o tipo de variável não existe mesmo, mas o erro é comum.
É perfeitamente possível transformar um valor de texto em valor numérico, mas não é deveria ser possível armazenar o resultado na mesma variável. Fiz um teste aqui e realmente parece que a variável ACEITA ter seu tipo mudado. Mais que isso, eu escrevo draw_text(x,y,teste) e o comando funciona mesmo quando teste recebe valores numéricos. Eu acreditava, até pouco tempo dez minutos atrás, que isso era impossível. Vou só tirar essa informação do tutorial, até saber explicar.

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.

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.
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:
Código:
if teste==true //com comparativo
Código:
if teste //sem comparativo
Eu achava que, nos dois casos, o que quer que estivesse dentro do "if" seria executado se "teste" fosse verdadeiro, e que PARA O GAME MAKER qualquer valor positivo significava verdadeiro, mas não. No segundo caso, sem comparativo, o código será executado se "teste" for maior que 0.5. Outra bobagem pra tirar do tutorial.

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.
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.

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:
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
Tem um "(" a mais, no começo da declaração. "(<--(keyb[...]" [Tutorial] Variáveis 745821 Fora isso, seu tutorial está ótimo. Vou ver se faço um Bomberman da vida com ele xD
Valeu, Markituh! Já corrigi o erro e vou acrescentar a informação.
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 : [Tutorial] Variáveis 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

[Tutorial] Variáveis Empty Re: [Tutorial] Variáveis

Mensagem por Bruno Mota Qua 21 Nov 2012, 13:40

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
Bruno Mota

Data de inscrição : 17/11/2012
Reputação : 0
Número de Mensagens : 12
Prêmios : [Tutorial] Variáveis 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

[Tutorial] Variáveis Empty Re: [Tutorial] Variáveis

Mensagem por saim Qua 21 Nov 2012, 14:35

Bruno Mota escreveu:você precisou declarar a variável "tempo" antes de colocar o código if obj_controle.tempo==0?
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.
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 : [Tutorial] Variáveis 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

[Tutorial] Variáveis Empty Re: [Tutorial] Variáveis

Mensagem por Bruno Mota Qua 21 Nov 2012, 21:12

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
Bruno Mota

Data de inscrição : 17/11/2012
Reputação : 0
Número de Mensagens : 12
Prêmios : [Tutorial] Variáveis 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

[Tutorial] Variáveis Empty Re: [Tutorial] Variáveis

Mensagem por saim Qui 22 Nov 2012, 08:08

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.
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 : [Tutorial] Variáveis 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

[Tutorial] Variáveis Empty Re: [Tutorial] Variáveis

Mensagem por Bruno Mota Qui 22 Nov 2012, 08:27

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
Bruno Mota

Data de inscrição : 17/11/2012
Reputação : 0
Número de Mensagens : 12
Prêmios : [Tutorial] Variáveis 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

[Tutorial] Variáveis Empty Re: [Tutorial] Variáveis

Mensagem por saim Qui 22 Nov 2012, 11:41

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?
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 : [Tutorial] Variáveis 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

[Tutorial] Variáveis Empty Re: [Tutorial] Variáveis

Mensagem por peixoto Sáb 24 Nov 2012, 21:24

ótimo tutorial cara!

Aprendi umas coisas com ele(por exemplo, não sabia que existia o comando " gravity " o.O )

Obrigado ae por postar.
peixoto
peixoto

Games Ranking : Nota D

Notas recebidas : D
Data de inscrição : 14/02/2010
Reputação : 3
Número de Mensagens : 911
Prêmios : [Tutorial] Variáveis 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

[Tutorial] Variáveis Empty Re: [Tutorial] Variáveis

Mensagem por Camin Qua 16 Abr 2014, 22:07

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. feliz2
Camin
Camin

Data de inscrição : 26/03/2011
Reputação : 9
Número de Mensagens : 101
Prêmios : [Tutorial] Variáveis 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

[Tutorial] Variáveis Empty Re: [Tutorial] Variáveis

Mensagem por Sewer Crawler Dom 25 Jan 2015, 23:44

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.
Creio que vc inverteu os nomes dos sinais.
[ ] são colchetes e { } são chaves.
Sewer Crawler
Sewer Crawler

Data de inscrição : 08/10/2014
Reputação : 27
Número de Mensagens : 236
Prêmios : [Tutorial] Variáveis 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

[Tutorial] Variáveis Empty Re: [Tutorial] Variáveis

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