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


#IEM Aula 02 - Variáveis/Constantes

5 participantes

Ir para baixo

#IEM Aula 02 - Variáveis/Constantes Empty #IEM Aula 02 - Variáveis/Constantes

Mensagem por All-x Qui 31 Dez 2009, 19:33

INTRODUÇÃO EM GML



Aula 02 - Variáveis e Constantes



(Atualizado 08/02/2015)

Variáveis são utilizadas para armazenar vários tipos de valores, como números, textos e frases. Elas também são chamadas de identificadores, pois apontam um valor.

Um nome de variável pode conter letras (sem acentos gráficos e o Ç), números (Desde que não comece com um ex: 8_tiro) e alguns símbolos como o underline (_). As que armazenam números são chamadas de variáveis de valor Real e as que armazenam textos são chamadas de Strings.

Veja alguns exemplos:

- Atribui o valor 100 à variável balas:

Código:
balas = 100

- Atribui o valor 55 à variável BALAS:

Código:
BALAS = 55

- Atribui o valor 7.5 à variável forca:

Código:
forca = 7.5

- Atribui o valor 3 à variável _vidas_:

Código:
_vida_ = 3

- Atribui o valor "João Pedro José" à variável Nome3:

Código:
Nome3 = "João Pedro José"

- Atribui o valor false à variável pode_atirar:

Código:
pode_atirar = false

Repare que:


  • As quatro primeiras variáveis são de valor Real.
  • A variável forca é de valor Real fracionado. Aqui usamos pontos (.) e não virgulas (,).
  • As variáveis balas e BALAS são duas variáveis diferentes. Isso por causa do case-sensitive, ou seja mesmo que só uma das letras seja maiúscula já é uma nova variável.
  • A penúltima variável é uma String.
  • A última variável é de valor booleano.


Entenda melhor:

String: Textos, palavras e letras que devem vir entre apóstrofos, como "Eu venci! Então eu sou o ganhador".

Real inteiro: Números inteiros como 5, 670, 100000, e 31.

Real fracionado: Números fracionados 5.67, 100.55, e 0.5.

Booleano: true que é a mesma coisa que 1 e false que é o mesmo que 0. Tanto faz você usar 1 como usar true, ambos tem o mesmo valor.

Existem três contextos para variáveis: global, local de instância e local de evento que definem como e de onde as variáveis podem ser acessadas.

Variável local de instância:

O Game Maker usa objetos para criar a aplicação. E cada  objeto  tem suas atribuições padrão, como a posição na room (Cenário). Cada objeto e suas réplicas (instâncias) têm uma posição, ou seja as variáveis x e y. Vamos criar um exemplo:

- Crie um objeto e uma room.
- Adicione o evento Create (evento que acontece 1 vez, quando o objeto é criado) ao objeto.
- Neste evento insira o código:

Código:
saude = irandom(100)

- Isso atribui o valor aleatório de 0 a 100 para a variável saude.

PS: a função irandom(X) nos devolve um número inteiro de  0 a X, no caso 100. Aprenderemos mais sobre funções mais a frente, não se preocupe em entender isso agora.

- Adicione o evento Draw (Evento de desenho, ocorre o tempo todo) ao objeto. Neste evento insira o código:

Código:
draw_text(x, y, saude)

- Isso desenha o valor armazenado na variável saude na posição x,y do objeto.

- Adicione vários deste objeto na room. Depois execute (F5).

O resultado é:

#IEM Aula 02 - Variáveis/Constantes SS_01

Veja que cada instância do objeto tem uma saude diferente. É dessa maneira que funciona uma variável local de instância. Para ver todas as variáveis de instância padrão/nativa para os objetos, vá na barra de menu clique em Scripts depois selecione a opção Show Built-in Variables. Elas estão no fim da lista em azul com o inicio "local:".

Acesso à uma variável local a partir de outro objeto: Deixarei em um spoiler, pois pode ser que seja um pouco complexo aprender essa parte. Se quiser pular ela não há problema, depois volte pra dar uma olhada.

Spoiler:

Variável global:

Esse é o tipo de variável que pode ser utilizada por todos os objetos e em qualquer momento durante a execução da aplicação (desde que seja criada antes de modificada ou acessada).

Código:
global.saude = 100

Diferentemente das variáveis locais de instância, as variáveis globais não são replicadas, elas são únicas. Ou seja é um valor que pode ser alterado por qualquer evento ou objeto, mas é um só. Veja que colocamos global. antes do nome da variável. Isso que a transforma em uma variável global.

Faça o mesmo procedimento que fizemos com a variável local de instância trocando saude por global.saude (Nos dois códigos). Os resultados de todas as instancias serão os mesmos, pois estamos falando de uma mesma variável.

Resultado:

#IEM Aula 02 - Variáveis/Constantes SS_02

Se você criou 6 instâncias, a variável vai ser modificada 6 vezes, sendo que o valor que  vai aparecer será o do último objeto adicionado a room.

Lista de algumas variáveis globais embutidas no Game Maker:


health: variável para representar a saúde do player
lives: variável para representar a quantidade de vidas
room: variável que define/representa a room atual
score: variável que representa a pontuação
mouse_x: variavel que representa a posição x do mouse
mouse_y: variavel que representa a posição y do mouse

Para ver todas as variáveis globais, vá na barra de menu e clique em Scripts depois selecione a opção Show Built-in Variables.

Repare que estas não possuem global.. Isso porque são do próprio game maker.

Variável local de evento:

Essa variável é comumente chamada de "variável temporária". Isso porque ela é declarada em um evento e descartada nesse mesmo evento. Vamos fazer um exemplo simples, mas antes vamos aprender a declarar essa variável temporária:

[var][nome da variável][;]

Código:
var meu_x;
Dessa maneira você declarou a variável meu_x. Você coloca o construtor var depois coloca o nome da variável e por fim coloca ponto e virgula (;). Para declarar mais de uma variável temporária faça o seguinte:

Código:
var meu_x, meu_y, meu_cachorro, meu_papagaio;
Você acaba de criar quatro variáveis temporárias. Veja que você só precisou apenas colocar virgulas (,) sem a necessidade de colocar os outros construtores.

Após declarar a variável temporária você pode dar um valor à ela. É a mesma forma de uma variável comum:

Código:
//Declaro a variável meu_x
var meu_x;

//Coloco o valor 320 na variável meu_x
meu_x = 320

Faça um teste. Coloque esse código no evento Create de um objeto e coloque o na room. Agora adicione esse código no evento Step:

Código:
//Muda a posição x do objeto para a posição da variável meu_x
x = meu_x

Execute. Você receberá uma mensagem de erro. Isso porque a variável meu_x já não existe mais. Ela foi deletada ao fim do evento Create (Que ocorre antes do Step). Então, percebeu a relação da variável com o evento?

Para ter uma ideia mais clara, transfira o código para o evento Create, onde ela foi declarada. Veja que funciona perfeitamente.

Resumindo, a variável local de evento é usada para reduzir o consumo de memória da aplicação. Ou seja, ele não deixa a informação parada na memória sem uso. Ela mantém seu valor por apenas 1 step (frame), depois ela é deletada. Tanto que se a usássemos no evento Step, teríamos que declará-la sempre antes de a usar:

Código:
//Declara variável temporária
var meu_numero;

//Guarda o valor 5 na variável
meu_numero = 5

//Move o objeto adicionando 5 a Step ao x
x += meu_numero

Constantes:

Uma constante é um identificador que não pode ter o valor modificado, por isso o nome de constante, valor constante, ou seja que não muda (Ao contrário das variáveis).


NOME
VALOR
True1
False0
pi3.1415
c_red255
vk_enter
13
Para ver todas as constantes, vá na barra de menu e clique em Scripts depois selecione a opção Show Constants.

E para adicionar suas próprias constantes vá na arvore de recursos e clique em Macros e depois selecione a opção All Configurations. Sempre que quiser adicionar uma nova clique em insert e defina o nome e o valor:

#IEM Aula 02 - Variáveis/Constantes Ss_03

Resumindo:

Variável local de instância  *só pode ser modificada pelo objeto em que foi criada (*Ou de outro objeto chamando este quando ele ainda existe).

Variável local de evento só pode ser modificada no evento em que foi criada.

Variável global pode ser modificada por qualquer objeto e evento.

E as Constantes não podem ter seu valor modificado

MUITO IMPORTANTE:

Não dê os mesmos nomes para variáveis globais, de instância e de evento. Ex:

Código:
carro = 5

var carro;

carro = 5

global.carro = 5

Isso vai causar uma série de erros. Logo, utilize nomes diferentes para cada uma dos tipos variáveis. O mesmo vale para nomes de constantes, sprites, backgrounds, sons, paths, fonts, scripts, timelines, objetos e rooms. Todos devem ter nomes diferentes.

Para ter uma noção mais avançada sobre variáveis, acesse o tutorial do saim abaixo:

https://gmbr.forumeiros.com/t15113-tutorial-variaveis

Próxima aula: Operações matemáticas



FLWS!


Última edição por Alex FC em Seg 09 Fev 2015, 19:22, editado 19 vez(es) (Motivo da edição : Atualização)
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 : #IEM Aula 02 - Variáveis/Constantes 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

#IEM Aula 02 - Variáveis/Constantes Empty Re: #IEM Aula 02 - Variáveis/Constantes

Mensagem por Henrique_GJ Seg 04 Jan 2010, 16:07

bom, fiquei meio confuso... mas deu pra entender... variável é... é... tipo como se eu colocasse uma informação lá para poder utilizar em outros eventos... certo???

tipo... se eu criar uma variável vidas=5

então por exemplo... se eu colocar em uma colisão com um objeto vidas-=1, então ao colidir com o objeto a variável vida vai de 5 pra 4....

se for assim mesmo, só terá uma coisa que não entendi...

como, por exemplo, ao criar uma variável vida, mostrar ela na tela.... tipo, quantas vidas o jogador possui??? :|



... vlw pelos tutos!!!!
Henrique_GJ
Henrique_GJ

Data de inscrição : 30/12/2009
Reputação : 4
Número de Mensagens : 1344
Prêmios : #IEM Aula 02 - Variáveis/Constantes 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
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Java
  • C ou C++


http://sitedosjogos.forumeiros.com

Ir para o topo Ir para baixo

#IEM Aula 02 - Variáveis/Constantes Empty Re: #IEM Aula 02 - Variáveis/Constantes

Mensagem por Denis Lemos Seg 04 Jan 2010, 16:20

É isso mesmo !!!

Agora para desenhar a variável na tela, você terá que primeiro transformá-la em global, coloque assim no create do objeto que você usa para controlar o jogo:
Código:
globalvar vidas;
E no draw desse mesmo objeto:
Código:
draw_text(view_xview+10,view_yview+25,vidas)
Denis Lemos
Denis Lemos

Data de inscrição : 17/05/2009
Reputação : 1
Número de Mensagens : 938
Prêmios : #IEM Aula 02 - Variáveis/Constantes 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
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Unity
  • C#
  • Godot
  • C ou C++


Ir para o topo Ir para baixo

#IEM Aula 02 - Variáveis/Constantes Empty Re: #IEM Aula 02 - Variáveis/Constantes

Mensagem por Henrique_GJ Seg 04 Jan 2010, 16:35

denis L. escreveu:É isso mesmo !!!

Agora para desenhar a variável na tela, você terá que primeiro transformá-la em global, coloque assim no create do objeto que você usa para controlar o jogo:
Código:
globalvar vidas;
E no draw desse mesmo objeto:
Código:
draw_text(view_xview+10,view_yview+25,vidas)

vou tentar... o q isso significa????? "draw_text(view_xview+10,view_yview+25,vidas)"
Henrique_GJ
Henrique_GJ

Data de inscrição : 30/12/2009
Reputação : 4
Número de Mensagens : 1344
Prêmios : #IEM Aula 02 - Variáveis/Constantes 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
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Java
  • C ou C++


http://sitedosjogos.forumeiros.com

Ir para o topo Ir para baixo

#IEM Aula 02 - Variáveis/Constantes Empty Re: #IEM Aula 02 - Variáveis/Constantes

Mensagem por Denis Lemos Seg 04 Jan 2010, 19:17

vou tentar... o q isso significa????? "draw_text(view_xview+10,view_yview+25,vidas)"

Essa função serve para você escrever um texto ou um valor de uma variável na tela !
Ela possui três argumentos (x,y,string)

No primeiro "(X)" eu coloquei "view_xview+10" para pintar na posição x+10 da tela, e quando a tela se mover, a variável desenhada à acompanhará !

No segundo "(Y)"eu coloquei "view_yview+25" para pintar na posição y+25 da tela ''(ou seja 25 pixeis para baixo)'' !

E no terceiro "(string)" é o nome da variével que será desenhada na tela !

Agora para escrever um texto se faz assim:
Código:
draw_text(view_xview+10,view_yview+25,"vidas")
Agora ao invez de mostrar o valor da variável, irá apenas escrever a palavra vidas na tela !

A única diferença é que, tem que colocar o texto entre ifens "(ou aspas)" sei lá como que é o nome da queles dois risquinhos !

Follows Exclamation
Denis Lemos
Denis Lemos

Data de inscrição : 17/05/2009
Reputação : 1
Número de Mensagens : 938
Prêmios : #IEM Aula 02 - Variáveis/Constantes 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
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Unity
  • C#
  • Godot
  • C ou C++


Ir para o topo Ir para baixo

#IEM Aula 02 - Variáveis/Constantes Empty Re: #IEM Aula 02 - Variáveis/Constantes

Mensagem por All-x Ter 22 Nov 2011, 12:20

Aula atualizada (22/11/11):

Refiz toda essa aula adicionando exemplos mais objetivos para facilitar o aprendizado.

Pretendo fazer isso com todas as aulas, até porque o Game Maker mudou bastante não é?

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 : #IEM Aula 02 - Variáveis/Constantes 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

#IEM Aula 02 - Variáveis/Constantes Empty Re: #IEM Aula 02 - Variáveis/Constantes

Mensagem por Konnor Seg 22 Out 2012, 20:48

Não sei por qual motivo ou circunstancia eu faço o que tu pedes, escrevo no Create este código mas ele não funciona, não aparece nada na room, apenas quando eu troco para evento Change, mas neste caso o resultado fica trocando constantemente.
Konnor
Konnor

Data de inscrição : 07/11/2010
Reputação : 0
Número de Mensagens : 153
Prêmios : #IEM Aula 02 - Variáveis/Constantes 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

http://socialbook.grouply.com/

Ir para o topo Ir para baixo

#IEM Aula 02 - Variáveis/Constantes Empty Re: #IEM Aula 02 - Variáveis/Constantes

Mensagem por All-x Seg 22 Out 2012, 21:51

Konnor escreveu:Não sei por qual motivo ou circunstancia eu faço o que tu pedes, escrevo no Create este código mas ele não funciona, não aparece nada na room, apenas quando eu troco para evento Change, mas neste caso o resultado fica trocando constantemente.

Lembre-se que tu deve criar um objeto, adicionar o código no Create e para ver o valor adicione o código seguinte de desenho no evento Draw.

Leia desde o começo atentamente. Você deve ter pulado alguma etapa ou não ter posto o objeto na room.

Até mais.

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 : #IEM Aula 02 - Variáveis/Constantes 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

#IEM Aula 02 - Variáveis/Constantes Empty Re: #IEM Aula 02 - Variáveis/Constantes

Mensagem por All-x Dom 02 Dez 2012, 16:04

Aula atualizada - 02/12/12:

- Melhora na grafia e explicação;
- Adição das variáveis de evento;
- Adição do link do tutorial do saim.

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 : #IEM Aula 02 - Variáveis/Constantes 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

#IEM Aula 02 - Variáveis/Constantes Empty Re: #IEM Aula 02 - Variáveis/Constantes

Mensagem por namikazealexandre Sáb 20 Dez 2014, 17:13

Não sei se é problema do fórum mas seus posts estão com a parte direita cortada aqui. Estou usando o firefox.
namikazealexandre
namikazealexandre

Data de inscrição : 31/05/2013
Reputação : 0
Número de Mensagens : 52
Prêmios : #IEM Aula 02 - Variáveis/Constantes 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

#IEM Aula 02 - Variáveis/Constantes Empty Re: #IEM Aula 02 - Variáveis/Constantes

Mensagem por All-x Sáb 20 Dez 2014, 22:40

Bom ter me avisado. Na verdade trata-se de erro na table que fiz pra ficar cheio de "frescuras". Vou aproveitar que amanhã estou a toa e fazer correções nessa e nas demais aulas.

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 : #IEM Aula 02 - Variáveis/Constantes 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

#IEM Aula 02 - Variáveis/Constantes Empty Re: #IEM Aula 02 - Variáveis/Constantes

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