Curso Completo de GML (GameMaker Language)

1. Introdução ao GML

1.1 O que é GML?

GML é a linguagem de programação usada no GameMaker Studio, uma ferramenta para desenvolver jogos. Com GML, você pode controlar eventos, animações, física e mais.

1.2 Configurando o Ambiente

Antes de começar, baixe e instale o GameMaker Studio em: GameMaker Studio.

1.3 Estrutura Básica de um Jogo

GameMaker usa uma arquitetura baseada em objetos, eventos e ações.

2. Fundamentos de GML

2.1 Variáveis

Em GML, variáveis são usadas para armazenar dados como números, texto, etc.

// Declarando uma variável global
global.score = 0;

// Declarando uma variável local
var vida = 100;

2.2 Tipos de Dados

var numero = 10;     // Inteiro
var preco = 9.99;    // Flutuante
var nome = "Jogador"; // String
var ativo = true;    // Booleano

2.3 Operadores

var a = 10;
var b = 5;
var soma = a + b;   // soma = 15
var maior = a > b;  // maior = true

3. Controle de Fluxo

3.1 Estruturas Condicionais

Estruturas condicionais permitem que você tome decisões no código.

var vida = 50;
if (vida > 0) {
    show_message("Você está vivo!");
} else {
    show_message("Você morreu!");
}

3.2 Laços de Repetição

Laços de repetição permitem executar um bloco de código várias vezes.

for (var i = 0; i < 10; i++) {
    show_message("Repetição: " + string(i));
}
var contador = 0;
while (contador < 5) {
    show_message("Contagem: " + string(contador));
    contador++;
}

4. Manipulação de Objetos e Eventos

4.1 Criando Objetos

No GameMaker, você cria objetos que têm eventos associados.

4.2 Eventos Básicos

// Create Event
x_speed = 5;

// Step Event
x = x + x_speed;

4.3 Colisões

Detecte colisões entre objetos e realize ações com base nelas.

if (collision_rectangle(x-5, y-5, x+5, y+5, obj_inimigo, false, true)) {
    vida -= 10;
}

5. Funções e Scripts

5.1 Funções em GML

Criar funções permite que você organize o código em blocos reutilizáveis.

function calcular_dano(ataque, defesa) {
    return ataque - defesa;
}

var dano = calcular_dano(30, 10);
show_message("Dano causado: " + string(dano));

5.2 Scripts

Scripts são como funções, mas ficam armazenados separadamente para reutilização.

6. Gráficos e Sons

6.1 Carregando Sprites

Sprites representam as imagens que você usa para objetos no jogo.

sprite_index = spr_player;  // Onde spr_player é um sprite pré-definido

6.2 Tocar Sons

Você pode tocar sons usando a função audio_play_sound.

audio_play_sound(snd_jump, 1, false);

7. Interatividade e UI

7.1 Captura de Entradas

Capture entradas do usuário, como pressionamento de teclas.

if (keyboard_check(vk_space)) {
    show_message("Espaço pressionado!");
}