Академический Документы
Профессиональный Документы
Культура Документы
Sumrio
1. Introduo a Lgica ................................................................................................ 03
2. Verdadeiro e Falso .................................................................................................. 03
3. Conectivo E e OU ................................................................................................... 03
4. Negao ................................................................................................................. 04
5. Introduo a Programao ..................................................................................... 04
6. Elementos Bsicos de um Cdigo Fonte ............................................................... 04
6.1 Palavras Reservadas .................................................................................................. 04
6.2 Comentrios ................................................................................................................ 04
6.3 Operadores .................................................................................................................. 04
6.4 Atribuio ..................................................................................................................... 04
6.5 Constantes .................................................................................................................. 05
6.6 Variveis ...................................................................................................................... 05
7. Arrays ...................................................................................................................... 06
7.1 Vetores ......................................................................................................................... 06
7.2 Matrizes ....................................................................................................................... 06
8. Expresses Lgicas e Aritmticas .......................................................................... 07
8.1 Operadores Aritmticos ............................................................................................... 07
8.2 Operadores Lgicos .................................................................................................... 07
8.3 Operadores Relacionais .............................................................................................. 07
8.4 Expresses Hbridas ................................................................................................... 07
8.5 Linearizao de Expresses ....................................................................................... 08
9. Plano cartesiano do Game Maker .......................................................................... 08
10. Condicional IF e ELSE .......................................................................................... 09
11. Condicional SWITCH ............................................................................................. 10
12. Lao de Repetio FOR ........................................................................................ 11
13. Lao de Repetio WHILE .................................................................................... 12
14. Lao de Repetio DO-UNTIL ............................................................................... 12
15. Funes ................................................................................................................. 13
15.1 Funes sem Retorno ............................................................................................... 14
15.2 Funes com Retorno ............................................................................................... 15
Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 2
1. INTRODUO A LGICA
Muita gente desconhece a Lgica Matemtica, pois ela uma cincia que
geralmente ensinada no curso superior. Se baseia em clculos diretos, onde no so
utilizados nmeros, mas sim somente dois valores lgicos: VERDADEIRO ou FALSO.
As pessoas que trabalham com o Game Maker, porm desconhecem sobre a
linguagem de programao ou lgica, nem imaginam que ao mesmo tempo que esto se
divertindo, tambm esto aprendendo sobre os valores lgicos.
2. VERDADEIRO e FALSO
No paramos para notar, mas os valores lgicos
esto em nosso cotidiano, em qualquer coisa que
falamos, ouvimos , lemos ou escrevemos. O simples
ato de aprovar ou negar algo, um valor lgico.
Os valores lgicos so trabalhados em
linguagem de programao, onde um resultado ser
sempre verdadeiro ou falso, veja na tabela a seguir, os
respectivos sinnimos desses valores nas linguagens,
outras literaturas e at mesmo em nosso cotidiano:
3. CONECTIVOS OU e E
Imaginemos que voc tem 10 reais, e vai uma loja de utilidades onde tem um
carrinho custando 10 reais e uma boneca tambm no mesmo valor. Com esse dinheiro
voc somente poder comprar o carrinho OU a boneca. Caso v loja com 20 reais,
poder comprar o carrinho E a boneca.
Conectivo E (conjuno) - utilizado sempre
para dar uma ideia de simultaneidade. Ou seja, enquanto um
dos valores ou os dois valores forem falsos, o resultado lgico
sempre ser falso. Pode ser representado por and ou &&
Exemplo: Joo tem 20 anos (V) e no tem carteira de
motorista (F). Joo no pode dirigir (F).
Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 3
Exemplo: A semana tem 8 dias (F) ou o Brasil o pas do futebol (V). O resultado dessa
disjuno verdadeira (V), pois a segunda proposio verdadeira.
4. NEGAO
A negao utilizada para efetuar a inverso de valores, ou
seja, se o valor verdadeiro ele fica falso e vice-versa.
Pode ser representado por no(x), ~x e !x, veja na tabela ao
lado.
5. INTRODUO A PROGRAMAO
Linguagem de programao um conjunto finito de smbolos utilizados para
escrever programas de computador ou criar jogos.
No caso trabalharemos com cdigos ligados a GML (Game Maker Language), que
basicamente a unio de algumas outras linguagens como C, C++ e Pascal.
Muitas pessoas acreditam que fazer um jogo no Game Maker somente arrastar
boto e ver acontecer. Porm, na realidade, existe muita lgica e programao envolvidos,
e isso que voc ver a seguir.
Soma e concatenao
Subtrao
Multiplicao
Diviso
Igualdade
! (exclamao)
true ou 1
false ou 0
> (maior)
< (menor)
Negao
Verdadeiro
Falso
Maior
Menor
6.4 Atribuio: uma das principais maneiras de armazenar uma informao numa
varivel. O smbolo de atribuio o igual (=), lembrado que = (atribuio) diferente de ==
(Igualdade)
Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 4
Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 5
Depois de atribuir um valor a um ndice de um vetor, ao exibi-lo ou compara-lo, devese indicar o ndice. Se por exemplo, declararmos o vetor bloco com 4 ndices, ao us-lo
(num evento Draw por exemplo), devemos indicar o valor do ndice, exemplo: bloco[2],
caso contrrio ele retornar o valor original da declarao e se colocar um ndice
inexistente, dar erro na execuo.
7.2 Matrizes: um Array tambm pode ser uma Matriz, ou seja, pode ter seus valores
guardados numa tabela. A declarao da varivel a mesma do vetor, poderem na
atribuio dos ndices separamos as colunas e linhas por vrgula:
Sintaxe: <variavel>[<col>,<lin>]
Exemplo:
bloco = 0
Declaramos bloco com o valor 0;
bloco[1,0] = frase Posio 1,0 de bloco recebe resultado da expresso 2+1;
bloco[2,0] = 20
Posio 2,0 de bloco recebe 20;
bloco[3,0] = false Posio 3,0 de bloco recebe valor lgico falso;
bloco[1,1] = 3+5
Posio 1,1 de bloco recebe resultado da expresso;
bloco[3,1] = true
Posio 3,1 de bloco recebe valor lgico verdadeiro;
bloco[0,2] = novo Posio 0,2 de bloco recebe string novo;
bloco[2,2] = 4*8-15 Posio 2,2 de bloco recebe resultado da expresso.
Os espaos que sobram (em cinza escuro riscado), so chamados de lixos, isso
porque so espaos perdidos. Se chamssemos, por exemplo, o ndice bloco[0,1] o Game
Maker retornar 0 (falso), se fosse num outro compilador de softwares (como DevC++), iria
aparecer um monte de smbolos sem sentido. Esses espaos perdidos tambm consomem
Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 6
memria, por isso siga sempre essa dica: Nunca deixe espaos em branco num array, seja
ele um vetor ou uma matriz.
Exemplos de como chamar um array com a funo Draw:
draw_text(x,y,bloco[1])
Mostrar na tela o valor 20 do vetor bloco
draw_text(x,y,bloco[3,1]) Mostrar na tela o valor lgico 1 da matriz bloco.
Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 7
(2+sqrt(4*2+8))/(2*2*2)
Como todos devem saber desde o ensino fundamental, numa expresso sem
parnteses, os operadores tem uma ordem de precedncia que devemos seguir (tabelas
acima), onde que se errado o clculo, o resultado pode ser diferente do esperado. Mas
para nossa felicidade, os compiladores em geral, executam respeitando essa precedncia
automaticamente, basta inserirmos corretamente a expresso utilizando parnteses para
indicar a precedncia exata e para ficar mais agradvel visualmente.
Quanto a questo de raiz quadrada e exponenciao, o Game Maker j conta com
funes especficas para isso e para outros clculos. Por exemplo: raiz quadrada de 16
sqrt(16) e a potncia de 8 sqr(8).
Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 8
EXEMPLO 1
Se Joo > 18 anos
ento Poder dirigir
EXEMPLO 3
Se (Paula > 0 reais) ou (Paula == 0 reais)
ento Paula ficar em casa
Mas como isso ficaria no Game Maker? Bom, no GM utilizamos no lugar de se, o
if e no lugar de ento, usamos { } (abre e fecha chaves).
EXEMPLO 4
If 5 > 3 {
draw_text(x,y,maior)
}
Caso queira colocar mais uma condio caso ela seja falsa, a entra em ao o else (que
em traduo livre seno).
EXEMPLO 5
Se carro < 60Km/h
ento No leva multa
Seno Ele multado
EXEMPLO 6
Se (5 == 5) && (5!=6)
ento igual
Seno diferente
Para inserir essas condies no Game Maker, a sintaxe bem parecida com a do Game
Maker, porm envs de seno, utilizamos else. Vamos fazer o exemplo 7 usando o 4:
Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 9
EXEMPLO 7
If 5 > 3 {
draw_text(x,y,maior)
} else {
draw_text(x,y,menor)
}
EXEMPLO 8
If carro < 60 {
draw_text(x,y,No multado)
} else {
draw_text(x,y, multado)
}
Bom, ainda existe um terceiro caso que podemos adicionar, veja no problema a seguir:
Faa um script onde escreva na tela se o numero digitado pelo usurio maior, menor ou
igual a 5.
A questo a seguinte, como podemos colocar essa terceira condio se s
obtemos duas? (If e Else)
A resposta simples, porque podemos inserir sempre uma funo dentro da outra, ou seja,
podemos colocar uma condicional dentro da outra, veja na resoluo a seguir:
EXEMPLO 9
If numero > 5 {
draw_text(x,y,Maior)
} else {
if numero < 5 {
draw_text(x,y,Menor)
} else draw_text(x,y,Igual)
}
EXEMPLO 1
n=5
switch (n)
{
case 1:
draw_text(room_width/2, room_height/2, "Um")
break;
case 2:
draw_text(room_width/2, room_height/2, "Dois")
break;
default:
draw_text(room_width/2, room_height/2, "Nenhum");
}
EXEMPLO 2
switch (keyboard_key)
{
case vk_left:
case vk_numpad4:
x -= 4;
break;
case vk_right:
case vk_numpad6:
x += 4;
break;
}
EXEMPLO 1
Para M de 0 a 100 faa
()
fimpara
Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 11
EXEMPLO 2
for (M=0; M==100; M+=1) {
()
}
EXEMPLO 3
for (i=0; i<=60; M+=1) {
carro+=2
}
EXEMPLO 1
m=1
while (m < 200)
{
m = m + 1;
draw_text(room_width/2, room_height/2, m)
}
EXEMPLO 1
m=1
do {
m = m + 1;
draw_text(room_width/2, room_height/2, m)
} until (m == 200)
EXEMPLO 2
do {
j += 1
draw_text(room_width/2, room_height/2,
"No 500")
} until (j == 500)
15. FUNES
Unidade autnoma no cdigo, que executa uma tarefa particular. Alm de deixar o
cdigo mais organizado, ele pode ser utilizado em mais de um evento ou objeto, deixando o
jogo mais leve. Para isso usaremos tambm a pasta Scripts que se localiza na navegao
lateral do Game Maker. Veja o esquema a seguir:
15.1 Funes sem Retorno: uma funo que no utiliza um retorno de uma
execuo especfica. Retornando a ltima linha de comando, e se necessrio acumulando
mais valores das anteriores.
EXEMPLO 1
Pasta Objects
draw_text(room_width/2, room_height/2,
teste(20))
Pasta Scripts nome teste
i = argument0
i += 30
EXEMPLO 2
Pasta Objects
draw_text(room_width/2, room_height/2,
outroteste(3,45))
Pasta Scripts nome outroteste
m = argument0
n = argument1
i = 6+3
k = m+n
15.2 Funes com Retorno: uma funo que utiliza um retorno para colocar no
objeto a expresso ou varivel. Veja os exemplos a seguir:
EXEMPLO 1
Pasta Objects
draw_text(room_width/2, room_height/2,
reto(15))
Pasta Scripts nome reto
p = argument0
p += 10
return p+23
EXEMPLO 2
Pasta Objects
draw_text(room_width/2, room_height/2,
reto2(4,55))
Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 14
jogo01(ord('A'), ord('D'))
jogo01(vk_left, vk_right)
Enfim, existem vrias outras funes prprias do Game Maker, da prxima vez falarei
mais sobre o assunto. Obrigado pelo download e pela leitura.
Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 15
http://www.gamemakerbrasil.com
http://www.spriters-resource.com
http://www.dicasemgeral.com
Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 16