[Curso de GML] Aula 2 - Variáveis, Arrays e Built-In Variables.

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

[Curso de GML] Aula 2 - Variáveis, Arrays e Built-In Variables.

Mensagem por Markituh em Dom 28 Nov 2010, 11:58

Aula 2: Variáveis, Arrays e Built-in Variables.

Objetivo: Ensinar como lidar com variáveis,arrays e B-In Vars.
Dificuldade: Depende da sua leitura e atenção.
Ferramenta: GM7 ou GM8.

Delphi, Inteligência e tudo o que há de bom. Esses foram os ingredientes para criar o Game Maker perfeito. Mas, o professor Mark, adicionou um ingrediente extra na mistura: O elemento facilidade! E assim nasceu o Game Maker, com seus incríveis super poderes: Criar jogos de vários tipos, programas e tudo mais, combatendo o tédio insano, e as forças malígnas da internet.

Boa tarde, meus amigos. Hoje, estarei mostrando para vocês a segunda aula do Curso de GML, projeto iniciado por Dharrison. Bom, chega de falar de comprimentos, vamos direto ao que interessa.

Variáveis
Variáveis são localizações da memória que armazenam informação, segundo o arquivo de ajuda do GM8. São endereços escritos na memória RAM, que podem ser identificados com o nome da variável que você colocou, novamente segundo o arquivo de ajuda do GM8. Como são armazenadas na memória RAM, se seu jogo tiver uma quantidade de variáveis muito grande, provavelmente vai travar. Existem três tipos de variáveis: Variável local, variável global e variável temporária. Uma variável pode ser usada para qualquer coisa, de ver se o player está para direita ou até armazenar um arquivo nela, para o GM abrir.

Variável local:
Variável local é aquela que, como seu nome já supõe, só fica naquela localidade. A variável local só pode ser usada no objeto em que ela foi definida, mais há uma exceção. Definimos a variável desta forma, no Create do objeto:
Código:
variável = expressão
A exceção é você colocar o nome do objeto, seguindo de um ponto, que em demais linguagens como C++, Pascal e afins, representa a propriedade de algo. Então, já que a variável local do obj_panela, por exemplo, é propriedade dele, nós só temos que indicar o objeto e sua propriedade. Desta forma:
Código:
obj_panela.cozinhar = expressão
O que é expressão, você pode aprender na aula anterior, de Dharisson. O que temos no código acima? Simplesmente indicamos de quem a variável cozinhar é propriedade, então mudamos o valor dela. Fácil, fácil, não é mesmo? (Frase de um CD de inglês meu da 4º série)

Variável global:
Variável global, diferente da local, pode ser usada em qualquer objeto, sem a questão da propriedade mencionada acima. O próprio nome já sugere, variável global. Um exemplo de uso dela é quando você quer armazenar o nome do player, por exemplo. Aí, você armazena na variável global, para que todos os objetos possam interpretar o que está nela. Um detalhe na questão do nome do player, é que o objeto em que esta esteja definida, tem que ser Persistent, que você pode encontrar o que quer dizer no spoiler abaixo, para não ficar grande a explicação:
Spoiler:
Persistent, ou Persistente, é uma opção dos objetos, como o próprio nome já sugere, que deixa aquele objeto persistente. Isto é, por mais que você mude de room, ele vai ficar sempre ali, a não ser que você o delete ;)
O que é persistente você poderia talvez aprender em um tutorial de Drag and Drop, mas fiz questão de dizer a ti :)Exemplo de código:

Exemplo 1-1
Código:
global.nome_player = "Marcelo"
Exemplo 1-2
Código:
show_message("Você é o "+string(global.nome_player)+"?")
A função do primeiro código define a variável global nome_player, que, obviamente, você vai mandar o player digitar. O segundo código, mostra uma mensagem. Você vai aprender melhor sobre ele no final da aula.

Variáveis temporárias:
Variáveis temporárias, novamente, como o nome já sugere, são variáveis que só ficam ali até determinado tempo. Uma variável temporária pode ser usada num código para abrir música, por exemplo. Isso melhoraria bastante, pois não ia precisar mexer no Create para criar variáveis, só era chegar ali e pá! Uma variável temporária pode ser definida da seguinte forma, seguida de um uso dela:
Código:
var musica;
musica = get_open_filename("Músicas|*.mp3;*.wav;*.mid;","")
sound_replace(snd_musica,musica,0,0)
sound_play(snd_musica)
No código, declaramos a variável temporária música. Em seguida, abrimos uma janela para escolher arquivos. Sobrescrevemos o som snd_musica da árvore de recursos pelo arquivo escolhido e tocamos. Caso fosse para só escolher e tocar em outra ocasião, já seria necessário uma variável local ou global. As funções do código serão explicadas no final, como eu já disse. Uma outra coisa, no caso de mais de uma variável, separe por vírgulas ",". Só para reforçar sua mente, são temporárias, você não pode usar em mais lugar nenhum a não ser aquele código.

NOTA: Se quiser uma outra explicação sobre Variáveis, recomendamos o tutorial do saim, Clique Aqui para Conferir

Arrays
Arrays são, digamos, sub-variáveis. São basicamente variáveis, mas como opções secundárias, ideal para quem está fazendo algo que utiliza categorias. Os valores do array ficam dentro de chaves([). Existem 3 tipos de array, 1D, 2D e 3D. Mas, aqui vou apenas explicar dois, 1D e 2D, pois o 3D é mais complexo.

Array 1D:
O Array 1D, por ser 1D, só tem um valor. Nesse exemplo, vamos usar um array para definir mensagens a ser exibidas pelo jogo em certas ocasiões.

Exemplo 1-1:
Código:
mensagens[0] = "Você ganhou!"
mensagens[1] = "Você perdeu!"
mensagens[2] = "Deu empate!"
Exemplo 1-2:
Código:
if ganhou = true
{
show_message(mensagens[0])
}
else
{
show_message(mensagens[1])
}
if empate = true
{
show_message(mensagens[2])
}
No primeiro código, é declarado o array. Os arrays servem exatamente para isso, para separar por categorias. Se não, você ia criar muitas variáveis desnecessárias, em vez de utilizar arrays.

Array 2D:
O Array 2D é o que realmente é por categoria, neste, usa-se dois sub-valores. Ele é bastante usado para fazer inventórios, e também para outras coisas, só é usar a criatividade.
Código:
mensagens[0,0] = "Você ganhou!"
mensagens[0,0] = "Você perdeu!"
mensagens[0,0] = "Deu empate!"
mensagens[1,0] = "Voltar"
mensagens[1,0] = "Opções"
mensagens[1,0] = "Sair"
Geralmente, o primeiro valor das chaves é a categoria, e o segundo, o item. No exemplo acima, 0 é a categoria que mostra mensagens dos resultados da partida, enquanto 1 são as opções do menu de pause.

Não vou detalhar muito, afinal só estou ensinando sobre variáveis, arrays e built-in variables, a programação em si é com você. Agora, vamos à mais longa seção desta aula.

Built-in Variables
Emfim, chegamos aqui! Pois é, built-in variables. Sabe o que quer dizer? São variáveis que já vem com o GM, daí o nome Built-In, que já veio feito. Não há muito segredo nas Built-in Variables, como toda boa variável ela guarda valores, estas porém são pré-definidas, portanto você não precisa declarar nenhuma delas no Evento Create de um objeto, é só digitar no script que elas entram em operação. Mas é claro que você tem que definir o valor delas. Você pode até usar elas e nem perceber, então, você saberá de tudo agora! São Built-In Variables:

    Variáveis globais (Usadas de Forma Geral no Jogo)
  • argument
  • argument0
  • argument1
  • argument10
  • argument11
  • argument12
  • argument13
  • argument14
  • argument15
  • argument2
  • argument3
  • argument4
  • argument5
  • argument6
  • argument7
  • argument8
  • argument9
  • argument_relative
  • background_alpha
  • background_blend
  • background_color
  • background_foreground
  • background_height
  • background_hspeed
  • background_htiled
  • background_index
  • background_showcolor
  • background_visible
  • background_vspeed
  • background_vtiled
  • background_width
  • background_x
  • background_xscale
  • background_y
  • background_yscale
  • caption_health
  • caption_lives
  • caption_score
  • current_day
  • current_hour
  • current_minute
  • current_month
  • current_second
  • current_time
  • current_weekday
  • current_year
  • cursor_sprite
  • error_last
  • error_occurred
  • event_action
  • event_number
  • event_object
  • event_type
  • fps
  • game_id
  • health
  • instance_count
  • instance_id
  • keyboard_key
  • keyboard_lastchar
  • keyboard_lastkey
  • keyboard_string
  • lives
  • mouse_button
  • mouse_lastbutton
  • mouse_x
  • mouse_y
  • program_directory
  • room
  • room_caption
  • room_first
  • room_height
  • room_last
  • room_persistent
  • room_speed
  • room_width
  • score
  • secure_mode
  • show_health
  • show_lives
  • show_score
  • temp_directory
  • transition_kind
  • transition_steps
  • view_angle
  • view_current
  • view_enabled
  • view_hborder
  • view_hport
  • view_hspeed
  • view_hview
  • view_object
  • view_vborder
  • view_visible
  • view_vspeed
  • view_wport
  • view_wview
  • view_xport
  • view_xview
  • view_yport
  • view_yview
  • working_directory

    Variáveis Locais(Usadas nos objetos)
  • alarm
  • bbox_bottom
  • bbox_left
  • bbox_right
  • bbox_top
  • depth
  • direction
  • friction
  • gravity
  • gravity_direction
  • hspeed
  • id
  • image_alpha
  • image_angle
  • image_blend
  • image_index
  • image_number
  • image_single
  • image_speed
  • image_xscale
  • image_yscale
  • mask_index
  • object_index
  • path_endaction
  • path_index
  • path_orientation
  • path_position
  • path_positionprevious
  • path_scale
  • path_speed
  • persistent
  • solid
  • speed
  • sprite_height
  • sprite_index
  • sprite_width
  • sprite_xoffset
  • sprite_yoffset
  • timeline_index
  • timeline_position
  • timeline_speed
  • visible
  • vspeed
  • x
  • xprevious
  • xstart
  • y
  • yprevious
  • ystart

Essas são as Built-in Variables.

O Próximo tópico, Aula 2: Extra 1, irá listar e organizar uma por uma destas variáveis e dizer uma breve explicação do que cada uma é. Também serão listadas contants, e uma introdução a elas.

E no tópico Aula 2: Extra 2 haverá uma lista das Built-in Functions mas usadas. Somando um total de 426 funções. Haverá uma explicação de como usar cada uma.

Revisando a Aula 2_2.rar (Correção de um bug)

Abraços e bons estudos,
~Markituh.

------------------------------------------
O Curso:
° - Aula 1 (Parte 1) - Entendendo o Funcionamento do GML (O Básico)
° - Aula 1 (Parte 2) - Entendendo o Funcionamento do GML (As Estruturas do GML)
° - Aula 2 - Variáveis Locais, Globais, Arrays e Built-in Variables
° - Aula 3 - As Declarações IF, IF/ELSE e SWITCH
° - Aula 4 - A Declaração WITH
° - Aula 5 - A Declaração FOR

Aulas Complementares e Extras (Descontinuadas, pois já existe a Documentação Traduzida do Game Maker no fórum):

° - Extra 1 - Lista Completa e Explicada de Built-in Variables e Visão Geral sobre Constants
° - Extra 2 - Lista Detalhada e Explicada das Built-in Functions mais usadas em GML


Última edição por dharrison em Seg 05 Maio 2014, 12:30, editado 5 vez(es) (Razão : Troca de revisão)

___________

"Não deixe para amanhã o que se pode fazer hoje"

Links úteis:
Índice de Tutoriais
Manual online do GMS

Markituh

Ranking : Sem avaliações
Número de Mensagens : 2183
Data de inscrição : 11/10/2009
Reputação : 106
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Curso de GML] Aula 2 - Variáveis, Arrays e Built-In Variables.

Mensagem por dharrison em Dom 28 Nov 2010, 12:10

fico mto boa a aula!
Rumo a aula 3 Feliz

dharrison

Ranking : Nota B
Número de Mensagens : 1243
Idade : 25
Data de inscrição : 04/02/2009
Notas recebidas : A - B
Reputação : 89
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 0
   : 1
   : 0

Voltar ao Topo Ir em baixo

Re: [Curso de GML] Aula 2 - Variáveis, Arrays e Built-In Variables.

Mensagem por Markituh em Dom 28 Nov 2010, 12:12

Adicionado Aplicativo de Revisão da aula 2.

___________

"Não deixe para amanhã o que se pode fazer hoje"

Links úteis:
Índice de Tutoriais
Manual online do GMS

Markituh

Ranking : Sem avaliações
Número de Mensagens : 2183
Data de inscrição : 11/10/2009
Reputação : 106
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Curso de GML] Aula 2 - Variáveis, Arrays e Built-In Variables.

Mensagem por Sldconde em Dom 28 Nov 2010, 13:52

Esta muito bem explicada essa aula, estou conseguindo, aos poucos, distrinchar o Game Maker que de pequeno não tem nada é bem completo e muito divertido fazer jogos nele e o "revisando a aula" esta dando uma caprichada ajuda nessas explicações todas, estão de Parabéns, Markituh e kharrison. Vlw!!

Sldconde

Número de Mensagens : 16
Idade : 35
Data de inscrição : 31/05/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Curso de GML] Aula 2 - Variáveis, Arrays e Built-In Variables.

Mensagem por Markituh em Dom 28 Nov 2010, 13:57

Obrigado. Só pra dizer que atualizei o Aplicativo de Revisão, porque segundo o Dharisson, estava com problemas.

___________

"Não deixe para amanhã o que se pode fazer hoje"

Links úteis:
Índice de Tutoriais
Manual online do GMS

Markituh

Ranking : Sem avaliações
Número de Mensagens : 2183
Data de inscrição : 11/10/2009
Reputação : 106
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Curso de GML] Aula 2 - Variáveis, Arrays e Built-In Variables.

Mensagem por Conteúdo patrocinado Hoje à(s) 12:36


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum