Apostila Livre Game Maker

Embed Size (px)

Citation preview

Apostila Livre

GAME MAKERVerso 1.0

ESCRITORESfUzEnRaDIdealizador e editor

fonetico F. Nizzio Suadao Kabeo matheus.reis

Copyright (C) Apostila Livre :: Game Maker :: 2010Est apostila est sob a licena GNU GPL 3: Voc pode redistribuir e modificar o contedo com a autorizao dos autores.

Apostila Livre - Game Maker :: 2010

ndice1. Principais Eventos 2. Variveis globais I. Onde usar? II. Nomeando variveis globais 3. Introduo ao Draw I. Modificando cores II. Draw Point III. Draw Line IV. Draw Rectangle V. Draw Circle VI. Draw Triangle VII. Draw Text 4. Introduo aos loops I. For II. While III. Do Until 5. Movimentao bsica em plataforma 6. Movimentao bsica em TopDown I. Introduo II. Desenhando um carrinho bsico III. Criando o objeto do carro IV. Criando pistas por tiles 7. Recursos externos I. Arquivos de som II. Imagens/backgrounds III. Sprites 8. Janelas Dinmicas I. Janelas com Informaes II. Adicionando o efeito fade in/out III. Janela com botes IV. Inserir dados V. Efeitos com janelas VI. Janela mvel VII. Efeito Fade In/Out VIII. Movimento horizontal

9. Pausando o jogo

Apostila Livre - Game Maker :: 2010

ndice10. GM3D - Primeiros passos I. O que pode ser feito em 3D no Game Maker II. A terceira dimenso! III. Construindo uma Engine 11. GM3D Projeo e Movimento da Cmera I. A funo d3d_set_projection_ext II. A funo d3d_set_projection_ortho III. Movimentando a cmera 12. GM3D Usando Transformaes I. Transformaes II. Continuando a engine III. Rotao e Escalao IV. Movimentao 13. Licena de uso, modificao e distribuio I. GNU GPL 3

Apostila Livre - Game Maker :: 2010

Legendas:- Possui cdigo fonte para Game Maker 8 (arquivo indicado em azul). - Captulo em reviso. - Captulo testado e revisado.

Iniciante Intermedirio Avanado

Cdigos:1. 2. 3. 4. 5. 6. Objetos (pode ser tambm sprites, sons, fundos etc) Comandos (qualquer comando ou varivel padro do GM) Dados (nmero ou texto) Variveis Funes Comentrios (parte ignorada pelo programa)

Apostila Livre - Game Maker :: 2010

1. Principais eventosO Game Maker possui muitos eventos, alguns podem ser substitudos por cdigos, outros no, falarei sobre os principais eventos, o bsico que ser usado por ns, nessa apostila. As funes que sero citadas aqui so:

Os botes Delete e Change, apagam e substituem o evento selecionado respectivamente, o Add Event, mostra toda a relao de eventos disponveis, todas as opes possveis, separadas em outras sub-categorias, so elas:

Apostila Livre - Game Maker :: 2010

Algumas opes abrem uma lista com novas opes, por exemplo o evento Mouse, essas so variaes desse evento:

Mas no nos aprofundaremos nessas sub-categorias de funes, somente em algumas delas, as quais usaremos com mais freqncia. Create Usado para iniciar as variveis, todas as variveis que sero usadas pelo objeto ao longo do jogo, devem ser indicadas nesse evento para evitar problemas futuros. Destroy Quando o objeto for destrudo executa um conjunto de funes. Alarm Indica que determinadas funes sero ativadas em algum momento do jogo, no Game Maker 8 (verso que trabalhamos nessa apostila) existe 12 eventos Alarm, para ativar um dele, tem o comando: Alarm[n]=frames

Onde n o nmero correspondente ao Alarm e o frames a quantidade de frames at ele acontecer, room_speed equivale a 1 segundo. Step Executa constantemente as funes adicionadas a ele, cuidados com as funes adicionadas nele, pode ter resultados insatisfatrios. Outside Room Aciona as funes quando o objeto sair da room, quando no for mais visvel na janela do jogo. Game Start Ao iniciar o jogo, s ser executado 1 vez na execuo do jogo.

Apostila Livre - Game Maker :: 2010

Game End Ao sair do jogo, nesse evento comumente usamos funes para apagar arquivos ou adicionar informaes a ele. Room Start Quando a room iniciar, executa as funes, esse evento pode acontecer mais de uma vez no jogo. Room End Ao sair da room, acionado as funes inseridas nele. Draw Funes de desenho (Ver o captulo Introduo ao Draw) Press Quando uma tecla for pressionada, esse commando tem 3 variaes, Keyboard, executa enquanto a tecla estiver pressionada, Keyboard Press, executa somente 1 vez quando uma tecla for pressionada, Keyboard Released, executa quando uma tecla for solta.

Apostila Livre - Game Maker :: 2010

2. Variveis globaisVariveis globais guardam informaes que o usuario escolhe. Essas informaes so salvas, podendo serem usadas em qualquer outra room. Por exemplo, o usuario escolhe um personagem para jogar( sobre isso que iremos trabalhar), ele clica no personagem, a informao do personagem escolhido guardado, e o personagem escolhido usado em outra room.

2.1 Onde usar?Como possvel guardar informaes escolhidas, muito importante us-las em selees de personagens, mudana dos controles de um jogo, criao de contas de usurio (mas para isso necessrio tambm guardar as informaes em arquivos INI, eu acho), entre muitas outras coisas. Com isso possvel perceber como as Variveis Globais so poderosas tanto na criao de um jogo quanto na de um programa. 2.2 Nomeando variveis globais As variveis globais sempre so nomeadas assim: global.variavel

Crie um objeto. Chame-o de "pers_1". Crie o evento Other > Game Start. Agora digite o seguinte cdigo: global.pers = 0;

Esse cdigo ir setar a opo "defalt". ( tipo o que est selecionado antes do usurio escolher) Agora crie outro evento. O evento Mouse > Left Button. Digite o mesmo cdigo citado acima. Isso ir alterar o personagem selecionado para ele, se o outro estiver selecionado. No mesmo evento, digite mais um cdigo: room_goto_next()

Crie outro objeto, e nomeie-o como "pers_2". Coloque o evento Mouse > Left Button, coloque o seguinte cdigo: global.pers = 1;

Isso ir alterar o personagem selecionado para ele, se o outro estiver selecionado. room_goto_next()

Apostila Livre - Game Maker :: 2010

Coloque um sprite diferente para cada um desses objetos. Crie dois objetos: o sel_1 e o sel_2. O sprite do sel_1 deve ser o sprite do pers_1, o sprite do sel_2 deve ser do pers_2. Crie outro objeto, chame-o de selecionador. nele digite o seguinte cdigo: if global.pers = 0 { instance_create(1,1,sel_1) } if global.pers = 1 { instance_create(1,1,sel_2) }

Se a varivel global (o item selecionado) for 0, criar objeto sel_1. Se a varivel global (o item selecionado) for 1, criar objeto sel_2. Com isso ao escolher um personagem, ele ser criado na room ao iniciar o jogo.

Apostila Livre - Game Maker :: 2010

3. Introduo ao DrawSempre que usarmos alguma funo desse grupo, devemos inseri-los dentro do evento Draw, caso algum dessas funes sejam inseridas em outro evento, simplesmente no funcionar. bem parecido com a inicializao de variveis, onde preciso que ela seja criada no evento create para depois ser modificada nos outros eventos. Ateno: Ao iniciar um evento no Draw, a sprite aplicada ao objeto no ser mostrada. Veremos como resolver isso mais adiante. As funes de desenho se iniciam sempre com Draw_, possvel fazer diversas coisas, como desenhar um retngulo, uma linha, um tringulo, entre vrios outros. draw_point(x1,y1) draw_rectangle(x1,y1,x2,y2,linha) draw_triangle(x1,y1,x2,y2,x3,y3,linha) draw_circle(x1,y1,raio,linha) //Entre outros

3.1 Modificando coresQuando trabalhamos com o draw, possvel modificar as cor de qualquer coisa que tenhamos desenhado na tela, seja ele um texto, um tringulo ou um ponto! E fcil, para isso, usamos o cdigo abaixo antes de escrever qualquer cdigo de draw: draw_set_color(cor)

Por padro do Game Maker, se no for indicado esse comando, a cor dos elementos desenhados na tela ser preta. Para personalizar voc pode colocar por exemplo uma constante ou uma cor em hexadecimal. As cores pr-definidas so: c_aqua //Azul piscina c_black //Preto c_blue //Azul c_dkgray //Cinza escuro c_fuchsia //Fcsia c_gray //Cinza c_green //Verde c_lime //verde limo c_ltgray //Cinza Claro c_maroon //Marrom c_olive //Oliva c_orange //Laranja c_purple //Roxo c_red //Vermelho c_silver //Prata c_teal //Azul

Apostila Livre - Game Maker :: 2010

c_white //Branco c_yellow //Amarelo

3.2 Draw PointEsse comando o mais bsico do draw e no tem segredos. A estrutura do cdigo basicamente essa: draw_point(x,y)

No x colocamos sua posio horizontal e no y sua posio vertical. Esse comando s desenha um ponto na tela, exatamente do tamanho de um pixel. Como j foi citado, existe o comando draw_set_color que muda a cor dos comandos de draw abaixo deste, esto, vamos fazer um teste, para que o ponto fique visvel: background_color=c_black // muda a cor do background para preto draw_set_color(c_white) //muda para cor branca draw_point(320,200) //desenha um ponto na posio 320, 200

Agora coloque este cdigo no evento draw de um objeto, insera-o na room e execute o jogo, voc perceber um minsculo ponto branco no centro da tela.

3.3 draw_lineComo o prprio nome sugere, serve para desenhar linhas com espessura equivalente a um pixel. draw_line(x1,y1,x2,y2)

Para entendermos como desenhar a linha exatamente no lugar onde queremos, necessrio saber como os cdigos funcionam. Em todos os cdigos do draw, exceto o draw_point, preciso especificar duas extremidades. O draw_line o mais fcil de compreender, porque s precisamos "dizer" ao GM, as duas extremidades da linha e ele faz o resto. Para isso necessrio saber como as coordenadas X e Y funcionam. Para explicar melhor, abaixo uma esquematizao:

Apostila Livre - Game Maker :: 2010

Como mostrado na imagem, os dois primeiros argumentos do script x1 e y1 representam a posio x e y da primeira extremidade da linha, o mesmo com x2 e y2, que representam o x e y da segunda extremidade da linha. Existe tambm, uma verso mais avanada dessa funo, o draw_line_color, onde so informados tambm, duas cores, aplicando em suas extremidades. possvel configurar a largura da linha, mas no com uma funo padro do Game Maker, o seguinte cdigo expressa o que acontece (o comando For ser explicado mais a frente) for (linha=0;linha