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
» player não consegue andar
por lovn7 Qui 21 Nov 2024, 13:33

» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22

» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31

» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23

» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49

» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58

» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36

» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36

» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33

» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51

» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28

» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18

» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08

» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10

» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16

» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40

» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01

» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45

» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34

» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28

» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48

» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54

» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14

» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50


[INICIANTES] 1ª Aula - Variáveis

3 participantes

Ir para baixo

[INICIANTES] 1ª Aula - Variáveis Empty [INICIANTES] 1ª Aula - Variáveis

Mensagem por guiagge Ter 27 Jul 2010, 14:31

Depois de anos acessando o fórum e criando jogos, criei coragem de fazer meu primeiro tutorial.

1ª Aula - Variáveis

Nesta aula vamos aprender sobre variáveis (o que são, como as usar, para que servem, ect). Rolling Eyes
(Se você ainda não tem certeza de como usar a GML, acesse minha 0ª aula...)

QuestionAntes de mais nada, o que são variáveis?

Aqui, temos que lembrar um pouco do que aprendemos na escola: quanto vale o x? Razz
Variáveis são termos (coisas?) que substituem, representam outros valores (um número).

Não entendeu? Sem problemas. Vamos a um exemplo:

Você tem 10 moedas.
Mas não tem nenhuma laranja.
Você encontra um vendedor vendendo laranjas a 2 moedas cada.
Você dá o dinheiro, e recebe 3 laranjas.
Mas como tudo deu apenas 6 moedas, recebe 4 de troco.

No Game Maker, poderiamos dizer isso assim:
Código:
moedas=10
laranjas=0
//Você tem 10 moedas, mas não tem nenhuma laranja.
Código:
//Você encontra um vendedor vendendo laranjas a 2 moedas cada.
laranjas+=3
//Recebe 3 laranjas
//Mas tem que pagar por elas, então:
moedas-=3*2
//Assim você comprou 3 laranjas por 2 moedas cada.

No exemplo acima, "moedas" e "laranjas" são variáveis.
Você pode estar se perguntando: mas e o troco?
No começo, colocamos as moedas iguais a 10 (moedas=10).
Depois, o que fizemos foi tirar 2 moedas para cada laranja que "ganhamos" (moedas-=3*2 , afinal, são 3 laranjas).
Assim, não é preciso troco, pois ele já foi "dado" nessa linha do código, e assim já estamos com as 4 moedas finais (10-3*2...).

Agora que você já sabe o que são as variáveis, vamos aprender como usa-las! cheers

QuestionComo usar variáveis?

Para que possamos usar uma variável, antes é necessário inicia-la.
Mas como fazemos isso?

Simples. Para iniciar uma variável num objeto, colocamos o valor inicial dela no evento "CREATE"
Código:
moedas=0

Exclamation Podemos colocar qualquer nome para uma variável, seguindo as seguintes regras:
  1. O nome deve começar com uma letra (uma variável "9enta", por exemplo não é válida);
  2. O nome só deve conter letras, números e underlines (_);
  3. O nome só pode ter até 64 caracteres.


Dito isso, é importante também explicar que uma variável "pertence" ao objeto em que foi criada.
Por exemplo, se você criar uma variável "morto" no objeto "goomba" e colocar no objeto "mario" o código
Código:
morto=1
a variável do objeto "goomba" não vai mudar em nada, já que você está dizendo na verdade que a variável morto do objeto "mario" é que é igual a 1.

QuestionMas e se eu quizer colocar a variável do "goomba" igual a 1?
Se você quizer fazer isso, você antes vai ter que antes da variável dizer quem é o "dono" dela.
Isso pode ser feito assim:
Código:
goomba.morto=1

Assim, o formato é: objeto.variável (nome do objeto e depois o nome da variável, separados por um ponto.)

Agora vem uma parte importante:
QuestionMas e se eu quizer destruir o "goomba" quando a variável "morto" for igual a 1?
Para fazer isso, usamos o código a seguir no evento "STEP" do objeto "goomba":
Código:
if(morto=true){instance_destroy();}
O código acima checa sempre (por isso foi colocado no STEP) se a variável "morto" é verdadeira(igual a 1).
Se for, destoe o objeto "goomba".

Exclamation Podemos utilizar os seguintes operadores quando checamos expressões:
= igual
< menor
> maior
<= menor ou igual
>= maior ou igual
! não(usado junto com outros)
!= diferente (não igual)
and e
or ou

Existem também 2 constantes ("variáveis que não variam", tem sempre um mesmo valor) que podemos usar em comparações:
true = verdadeiro = 1
false = false = 0

Assim, podemos colocar os seguinte códigos:
Create:
Código:
moedas=10
laranjas=0
texto=''
//inicia as variáveis
Step:
Código:
if(moedas>=3 and laranjas=0){texto='Aperte Espaço para comprar uma laranja.'}
//se as moedas são maiores que 3 e não tem laranjas, a var. texto é igual a frase acima
if(moedas>=3 and laranjas!=0){texto='Compre mais laranjas!'}
//se as moedas são maiores que 3 e tem laranjas, a var. texto é igual a frase acima
if(moedas<3){texto='Você precisa de mais dinheiro!'}
//se tem menos de 3 moedas, dizer que tem pouco dinheiro
if(keyboard_check_released(vk_space) and moedas>=3){laranjas+=1; moedas-=3}
//se a barra de espaço foi solta e tem moedas suficientes, ganhar uma laranja e perder 3 moedas.
Draw:
Código:
draw_text(x,y,'Moedas = '+string(moedas));
draw_text(x,y+32,'Laranjas = '+string(laranjas));
draw_text(x,y+64,texto);
//escreve a quantidade de moedas e de laranjas, e escreve o texto.

Observe o que foi feito na criação e nas ações involvendo a variável "texto".
Ela é o que se pode chamar de uma string. Strings são variáveis que armazenam textos ao invés de nºs.
Quando atribuimos valores a strings, temos que colocar esses valores entre aspas ou apóstrofos(" ou ') para que o Game Maker saiba que são pedaços de texto e não variáveis.
Usamos também a função string(variável); que dá o valor em texto de uma variável numérica.

Se você seguir os passos do exemplo acima, colocar o objeto numa room e compilar, provavelmente terá uma tela como essa:
[INICIANTES] 1ª Aula - Variáveis Ss0

Não é exatamente um jogo, mas funciona.
Se você apertar espaço e tiver dinheiro, será comprada uma laranja.

Acho que por essa aula é só. Mas vou deixar para vocês uma
Exclamation LIÇÃO DE CASA:
  • Fazer um objeto que desenhe a quantidade de steps desde o início do jogo.

Para aqueles que querem testar seus conhecimentos.

Por enquanto é só. Nesta aula aprendemos o básico sobre variáveis, o suficiente para se criar quase tudo que se queira.
Bom, o assunto da próxima aula eu ainda não sei, mas assim que estiver pronta dou um EDIT aqui e posto o link.
Espero que tenham gostado. Postem suas dúvidas e opiniões.
Até a próxima! rendeer


Última edição por guiagge em Qua 28 Jul 2010, 10:42, editado 1 vez(es)
guiagge
guiagge

Data de inscrição : 24/09/2008
Reputação : 0
Número de Mensagens : 90
Prêmios : [INICIANTES] 1ª Aula - 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

[INICIANTES] 1ª Aula - Variáveis Empty Re: [INICIANTES] 1ª Aula - Variáveis

Mensagem por Suadao Ter 27 Jul 2010, 14:41

Muito bom! Você conseguiu explicar de uma forma explícita e bem formatada, fácil de ser compreendida. Ótima iniciativa, espero ver mais aulas suas.

Valew! flw
Suadao
Suadao

Data de inscrição : 22/11/2009
Reputação : 4
Número de Mensagens : 1035
Prêmios : [INICIANTES] 1ª Aula - 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

http://www.recursos-mania.forumeiros.com

Ir para o topo Ir para baixo

[INICIANTES] 1ª Aula - Variáveis Empty Re: [INICIANTES] 1ª Aula - Variáveis

Mensagem por Super Games Ter 27 Jul 2010, 15:38

Otimo Guiagge!
Vai ajudar bastante os iniciantes no GameMaker.


PELA 1º VEZ....
Valew!
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 : 2800
Prêmios : [INICIANTES] 1ª Aula - Variáveis 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
  • Godot
  • Javascript
  • C ou C++


Ir para o topo Ir para baixo

[INICIANTES] 1ª Aula - Variáveis Empty Re: [INICIANTES] 1ª Aula - Variáveis

Mensagem por guiagge Qua 28 Jul 2010, 11:11

Muito obrigado, é bom receber comentários construtivos como esses (eu já estava esperando que algum espírito de porco "ser" ia vir e chigar meu trebalho ao último, mas ainda bem que ainda não aconteceu!)
Espero continuar recebendo opiniões, e qualquer dúvida, estamos aí!
guiagge
guiagge

Data de inscrição : 24/09/2008
Reputação : 0
Número de Mensagens : 90
Prêmios : [INICIANTES] 1ª Aula - 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

[INICIANTES] 1ª Aula - Variáveis Empty Re: [INICIANTES] 1ª Aula - 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