Variáveis são como sessões da memória do computador onde você coloca a informação que quiser basicamente textos e números.
Existem dois tipos de vars principais as variáveis locais e variáveis globais.
As var locais são variáveis que são criadas e usadas por cada obj separadamente e que para se usadas em outro obj será necessário índex, com a vantagem de que cada obj pode ter a mesma var só que trabalhada separadamente, isto é, cada uma em seu obj.
Já as vars globais são criadas em um obj e todos podem usar sem a necessidade de uma índex mas se você alterar seu valor em um obj você altera em todos ao mesmo tempo.
Bom com essa explicação complicada que mais confundiu que explicou vamos montar nossa primeira var.
Iremos usar um novo evento agora chamado
CREATE esse evento é o evento como o nome diz de criação mas ele chama assim não porque ele cria coisas mas sim porque ele é o primeiro evento executado quando seu obj for criado, por isso que é nele que iremos criar nossas vars.
Agora o adicione e nele coloque um
excute code e escreva o seguinte script.
- Código:
-
velocidade = 5
Obs: cuidado com maiúsculo e minúsculo na hora de criar os nomes de suas variáveis porque o GM reconhece isso e o melhor seria você adotar um padrão escrever de minúsculo sempre.
Pronto!!! Criamos nossa primeira var e ela vai controlar a velocidade da minha bola. Mas como?
Vá ate o script no evento step e nele subistitua todos os
5 por
velocidade.
Assim:
- Código:
-
if (keyboard_check(vk_right)){//verifica se a seta direita foi apertada
hspeed = velocidade
sprite_index = spr_mario_dir
}else{// se não foi
if (keyboard_check(vk_left)){ //verifica se a seta esquerda foi apertada
hspeed = -velocidade
sprite_index = spr_mario_esq
}else{// se não foi
hspeed = 0
image_index = 1
}
}
Agora quando você apertar um botão o script somara o valor de velocidade as coordenadas de nossa bola. Agora teste o jogo você vera que não mudou praticamente nada em nosso jogo, mas agora que vem à parte interessante:
Vá ao create e mude o valor da velocidade para
15, por exemplo. E teste.
- Código:
-
velocidade = 15
Você automaticamente mudou o valor que é somado as suas coordenadas sem precisar mudar todo seu script de movimentação.
Isso é só uma das muitas utilidades das vars por isso fique atento que haverá mais explicações sobre o assunto.
Agora vou fazer o que deixei pendente na aula anterior.
Aperte a campainha.Você provavelmente quando pensava em apertar um botão pensava nele como se fosse uma campainha.
Uma campainha quando apertada toca um som enquanto é pressionada e após soltar o botão o som para. Então basicamente são duas posições:
Apertado | com som |
Desapertado | sem som |
Mas no GM existe isso, mas também existem mais duas coisas.
Imagine que a campainha quando apertada toca três sons diferentes. Um quando você o aperta outro enquanto você está apertado e por ultimo quando você solta o dedo do botão.
O GM trabalha dessa forma ele tem 3 divisões quando você aperta o botão.
keyboard_check_pressed | quando você aperta o botão |
keyboard_check | enquanto você esta apertando o botão |
keyboard_check_released | e quando você solta o botão |
Vamos fazer um teste para você entender melhor:
Volte na aula anterior e modifique o script de movimentação que criamos para esse:
- Código:
-
if (keyboard_check_released(vk_right)){//verifica se a seta direita foi apertada
hspeed = velocidade
sprite_index = spr_mario_dir
}else{// se não foi
if (keyboard_check_released(vk_left)){ //verifica se a seta esquerda foi apertada
hspeed = -velocidade
sprite_index = spr_mario_esq
}else{// se não foi
hspeed = 0
image_index = 1
}
}
E aumente o valor de velocidade para 25. E teste.
Agora repare que quando você aperta
pra cima e pra baixo a bola se move na hora que você
aperta, mas quando você move se
para os lados a bola só se move na hora que você
soltar o botão.
Galera chega ao fim mais uma aula mas essa aula pode te deixado com mais duvidas do que ter explicando alguma coisa. Tenham calma, esse assunto é extenso mesmo, na próxima aula vamos usar mais vars e assim posso mostrar lhes mais coisas.