01. Lógica e Programação Basica

Transcrição

01. Lógica e Programação Basica
Apostila Básica de Lógica e Programação para Game Maker – por Giosepe Luiz 1
Sumário
1. Introdução a Lógica ................................................................................................ 03
2. Verdadeiro e Falso .................................................................................................. 03
3. Conectivo E e OU ................................................................................................... 03
4. Negação ................................................................................................................. 04
5. Introdução a Programação ..................................................................................... 04
6. Elementos Básicos de um Código Fonte ............................................................... 04
6.1 Palavras Reservadas .................................................................................................. 04
6.2 Comentários ................................................................................................................ 04
6.3 Operadores .................................................................................................................. 04
6.4 Atribuição ..................................................................................................................... 04
6.5 Constantes .................................................................................................................. 05
6.6 Variáveis ...................................................................................................................... 05
7. Arrays ...................................................................................................................... 06
7.1 Vetores ......................................................................................................................... 06
7.2 Matrizes ....................................................................................................................... 06
8. Expressões Lógicas e Aritméticas .......................................................................... 07
8.1 Operadores Aritméticos ............................................................................................... 07
8.2 Operadores Lógicos .................................................................................................... 07
8.3 Operadores Relacionais .............................................................................................. 07
8.4 Expressões Híbridas ................................................................................................... 07
8.5 Linearização de Expressões ....................................................................................... 08
9. Plano cartesiano do Game Maker .......................................................................... 08
10. Condicional IF e ELSE .......................................................................................... 09
11. Condicional SWITCH ............................................................................................. 10
12. Laço de Repetição FOR ........................................................................................ 11
13. Laço de Repetição WHILE .................................................................................... 12
14. Laço de Repetição DO-UNTIL ............................................................................... 12
15. Funções ................................................................................................................. 13
15.1 Funções sem Retorno ............................................................................................... 14
15.2 Funções com Retorno ............................................................................................... 15
Apostila Básica de Lógica e Programação para Game Maker – por Giosepe Luiz 2
1. INTRODUÇÃO A LÓGICA
Muita gente desconhece a Lógica Matemática, pois ela é uma ciência que
geralmente é ensinada no curso superior. Se baseia em cálculos diretos, onde não são
utilizados números, mas sim somente dois valores lógicos: VERDADEIRO ou FALSO.
As pessoas que trabalham com o Game Maker, porém desconhecem sobre a
linguagem de programação ou lógica, nem imaginam que ao mesmo tempo que estão se
divertindo, também estão aprendendo sobre os valores lógicos.
2. VERDADEIRO e FALSO
Não paramos para notar, mas os valores lógicos
estão em nosso cotidiano, em qualquer coisa que
falamos, ouvimos , lemos ou escrevemos. O simples
ato de aprovar ou negar algo, é um valor lógico.
Os valores lógicos são trabalhados em
linguagem de programação, onde um resultado será
sempre verdadeiro ou falso, veja na tabela a seguir, os
respectivos sinônimos 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 também 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” (conjunção) - é utilizado sempre
para dar uma ideia de simultaneidade. Ou seja, enquanto um
dos valores ou os dois valores forem falsos, o resultado lógico
sempre será falso. Pode ser representado por and ou &&
Exemplo: João tem 20 anos (V) e não tem carteira de
motorista (F). João não pode dirigir (F).
Conectivo “OU” (disjunção) - é utilizado para dizer se
ocorrerá um evento ou outro, ou seja, se ocorrer um dos
eventos (verdadeiro) ou os dois eventos, o valor lógico será
verdadeiro. Somente será falso quando os dois eventos forem
falsos. Pode ser representado por or ou ||
Apostila Básica de Lógica e Programação para Game Maker – por Giosepe Luiz 3
Exemplo: A semana tem 8 dias (F) ou o Brasil é o país do futebol (V). O resultado dessa
disjunção é verdadeira (V), pois a segunda proposição é verdadeira.
4. NEGAÇÃO
A negação é utilizada para efetuar a inversão de valores, ou
seja, se o valor é verdadeiro ele fica falso e vice-versa.
Pode ser representado por não(x), ~x e !x, veja na tabela ao
lado.
5. INTRODUÇÃO A PROGRAMAÇÃO
Linguagem de programação é um conjunto finito de símbolos utilizados para
escrever programas de computador ou criar jogos.
No caso trabalharemos com códigos ligados a GML (Game Maker Language), que é
basicamente a união de algumas outras linguagens como C, C++ e Pascal.
Muitas pessoas acreditam que fazer um jogo no Game Maker é somente arrastar
botão e ver acontecer. Porém, na realidade, existe muita lógica e programação envolvidos,
e é isso que você verá a seguir.
6. ELEMENTOS BÁSICOS DE UM CÓDIGO-FONTE (SCRIPTS)
6.1 Palavras Reservadas: palavras que tem um significado especial no código, ou
seja, geralmente são aquelas palavras que executa algum comando e por isso não podem
ser usadas para outros fins, como nomear variáveis. Exemplos: if, else, break, continue,
then, etc...
6.2 Comentários: são palavras ou frases que não interferem no código, sua função
é apenas explicativa, não altera nada na sequência lógica do script. Para colocar um
comentário insira “//” (duas barras) seguido da frase, caso seja só uma linha ou também
coloque o texto entre /* e */ (asterisco e barra) se for mais de uma linha.
6.3 Operadores Aritméticos e Lógicos: no código fonte, os sinais matemáticos e
lógicos são representados por:
+ (mais)
- (menos)
* (asterisco)
/ (barra)
== (2 iguais)
→ Soma e concatenação
→ Subtração
→ Multiplicação
→ Divisão
→ Igualdade
! (exclamação)
true ou 1
false ou 0
> (maior)
< (menor)
→ Negação
→ Verdadeiro
→ Falso
→ Maior
→ Menor
6.4 Atribuição: uma das principais maneiras de armazenar uma informação numa
variável. O símbolo de atribuição é o igual (=), lembrado que = (atribuição) é diferente de ==
(Igualdade)
Apostila Básica de Lógica e Programação para Game Maker – por Giosepe Luiz 4
Sintaxe: <variavel> = <constante> ou <variavel> ou <expressao>
Exemplo: personagem = 1+2
6.5 Constantes: são valores fixos que não mudam no decorrer da execução,
geralmente é atribuído a alguma variável ou é utilizado diretamente num chamado. São
constantes números, strings, expressões e valores lógicos.
→ Strings são conjunto de caracteres, onde devem ser colocados entre 'e' (aspas simples)
ou entre “e” (aspas normal). O “+” (mais) entre duas strings faz a concatenação (fusão)
delas. Ex. de strings: “carro”, “Orkut”, etc... Concatenação: “carro”+”casa”=”carrocasa”
→ Inteiros são números naturais inteiros, seja ele negativo ou positivo. E não se utiliza
aspas para atribuí-los ou chama-los. Ex. de inteiros: -25, -52, 0, 78, 3, -1, 2, etc...
→ Flutuantes são números reais, ou seja, aqueles que não são exatos. E não se utiliza
aspas para atribuí-los ou chama-los. Ex. de flutuantes: 2.5, -1.2, 0.24, 4.87, -6.7, -8.1, etc.
→ Valores lógicos são condições verdadeiras ou falsas. No Game Maker podemos usar 1
(verdadeiro) e 0 (falso), mas para evitar erros e confusões com inteiros, o ideal é usar true
ou false.
→ Expressões são cálculos executados durante o processo, e pode obter resultado
aritmético, lógico ou híbrido. Ex.: 2+6, 25-4*6, 5<4>6, 5+8<9, etc. Veremos logo mais,
detalhadamente sobre as expressões.
6.6 Variáveis: são espaços na memória que guardam informações durante a
execução do jogo. Essas informações podem variar no decorrer da execução. Para
declarar o valor de uma variável, é necessário colocar nos eventos Create, Game Start ou
Room Start, utilizando um sinal de atribuição (=). Exemplo: carro = 1. O valor de “carro” no
início do jogo, será 1.
Para alterar o valor de uma variável no decorrer do jogo, basta que no evento, coloque a
variável seguida do sinal de atribuição e do novo valor: carro = 3. Agora, “carro” vale 3. Mas
se você quer acrescentar ou retirar valores da variável, basta colocar um sinal matemático
ao atribuir.
Exemplo: Digamos que casa = 2
casa = casa+3
→ Aqui, “casa” receberá ela mesmo mais 3, agora passa a valer 5;
casa = casa-1
→ Agora, “casa” recebe ela menos -1, passa a valer 4;
casa = 8
→ Aqui “casa” recebe 8, onde é seu novo valor;
casa = casa/2
→ Agora “casa” recebe ela dividido por dois, passa a valer 4;
casa = casa*3
→ Por fim, “casa” recebe ela multiplicado por 3, passando a valer 12.
Podemos resumir o código de atribuição, exemplo: Envés de barra = barra+2 podemos
usar barra += 2. Vale para qualquer cálculo aritmético: +=, -=, *= e /=.
Exemplos de como chamar uma variável com a função “Draw”:
draw_text(x,y,casa)
→ Mostrará na tela o valor 12 da variável “casa”.
draw_text(x,y,casa+15)
→ Mostrará na tela o valor 27 como resultado.
draw_text(x,y,casa+”carros”) → Mostrará na tela o valor 12carros como resultado.
Apostila Básica de Lógica e Programação para Game Maker – por Giosepe Luiz 5
7. ARRAYS (VARIÁVEIS COM SETORES)
7.1 Vetores: são variáveis que possuem vários setores em seu espaço de memória,
sendo assim, não é necessário declarar uma variável mais de uma vez, basta declarar uma
vez e depois alterar os índices atribuindo um valor diferente para cada um.
Sintaxe: <variavel>[<indice>]
Exemplo:
bloco = 0
→ Declaramos “bloco” com o valor 0;
bloco[0] = 2+1
→ O índice 0 de “bloco” recebe resultado da expressão 2+1;
bloco[1] = 20
→ O índice 1 de “bloco” recebe 20;
bloco[2] = false
→ O índice 2 de “bloco” recebe valor lógico falso;
bloco[3] = “texto” → O índice 3 de “bloco” recebe string “texto”;
bloco[4] += 2-5
→ O índice 3 de “bloco” recebe resultado de uma expressão.
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 contrário ele retornará o valor original da declaração e se colocar um índice
inexistente, dará erro na execução.
7.2 Matrizes: um Array também pode ser uma Matriz, ou seja, pode ter seus valores
guardados numa tabela. A declaração da variável é a mesma do vetor, poderem na
atribuição dos índices separamos as colunas e linhas por vírgula:
Sintaxe: <variavel>[<col>,<lin>]
Exemplo:
bloco = 0
→ Declaramos “bloco” com o valor 0;
bloco[1,0] = “frase” → Posição 1,0 de “bloco” recebe resultado da expressão 2+1;
bloco[2,0] = 20
→ Posição 2,0 de “bloco” recebe 20;
bloco[3,0] = false → Posição 3,0 de “bloco” recebe valor lógico falso;
bloco[1,1] = 3+5
→ Posição 1,1 de “bloco” recebe resultado da expressão;
bloco[3,1] = true
→ Posição 3,1 de “bloco” recebe valor lógico verdadeiro;
bloco[0,2] = “novo” → Posição 0,2 de “bloco” recebe string “novo”;
bloco[2,2] = 4*8-15 → Posição 2,2 de “bloco” recebe resultado da expressão.
Os espaços que sobram (em cinza escuro riscado), são chamados de “lixos”, isso
porque são espaços perdidos. Se chamássemos, 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 símbolos sem sentido. Esses espaços perdidos também consomem
Apostila Básica de Lógica e Programação para Game Maker – por Giosepe Luiz 6
memória, por isso siga sempre essa dica: Nunca deixe espaços em branco num array, seja
ele um vetor ou uma matriz.
Exemplos de como chamar um array com a função “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 lógico 1 da matriz “bloco”.
8. EXPRESSÕES LÓGICAS E ARITMÉTICAS
Expressão é um conjunto de variáveis e/ou constantes que se relacionam por meio
de operadores e a sua avaliação gera um resultado.
Operadores são elementos que atual sobre operandos e produzem um resultado. De
acordo com o número de operandos, podem ser chamados de:
→ Binários: atuam sobre dois operandos como soma, subtração, divisão, etc...
→ Unários: atuam sobre um operando como sinal de negativo e negação.
8.1 Operadores Aritméticos: sempre irão retornar um valor numérico seja ele
inteiro ou flutuante, exemplos: 2+5=7, 2.5*2=5, 2-5=-3, etc...
8.2 Operadores Lógicos: sempre retorna um valor lógico, ou seja, verdadeiro ou
falso, exemplo: true or false = true
8.3 Operadores Relacionais: sempre retorna valores lógicos, ou seja, faz uma
comparação entre operandos, exemplos: 8<2=false, -52<50=true, 5!=5=false, etc...
8.4 Expressão Híbrida: pode ter operadores aritméticos, lógicos e relacionais,
porém sempre irá retornar um valor lógico. Exemplo: 5+3-5<45-10=true
Apostila Básica de Lógica e Programação para Game Maker – por Giosepe Luiz 7
8.5 Linearização de Expressões: é o ato de desmanchar uma expressão,
colocando-a numa linha só. Veja o exemplo a seguir:
Na linguagem de programação, não há como colocar essa fórmula no código fonte,
para isso devemos linearizar, respeitando os operadores e sua precedência. Assim:
(2+sqrt(4*2+8))/(2*2*2)
Como todos devem saber desde o ensino fundamental, numa expressão sem
parênteses, os operadores tem uma ordem de precedência que devemos seguir (tabelas
acima), onde que se errado o cálculo, o resultado pode ser diferente do esperado. Mas
para nossa felicidade, os compiladores em geral, executam respeitando essa precedência
automaticamente, basta inserirmos corretamente a expressão utilizando parênteses para
indicar a precedência exata e para ficar mais agradável visualmente.
Quanto a questão de raiz quadrada e exponenciação, o Game Maker já conta com
funções específicas para isso e para outros cálculos. Por exemplo: raiz quadrada de 16
sqrt(16) e a potência de 8 sqr(8).
9. PLANO CARTESIANO DO GAME MAKER
Todos estamos acostumados com aquele plano cartesiano que aprendemos quando
ainda estamos no ensino médio onde na linha x, positivo é à direita do zero e negativo à
direita e onde em y, positivo é para cima e negativo para baixo. Pois esqueça desse plano
cartesiano, porque o do Game Maker a linha do “y” é inversa, veja abaixo porque.
Apostila Básica de Lógica e Programação para Game Maker – por Giosepe Luiz 8
10. CONDICIONAL “IF” E “ELSE”
Basicamente a condicional “If” (em tradução livre “se”), trabalha com os valores
lógicos, verdadeiro e falso. Se não ocorre um evento, então ocorre outro. Veja o exemplo 1
a seguir logo mais leia a explicação:
EXEMPLO 1
Se João > 18 anos
então “Poderá dirigir”
Bom, caímos numa questão lógica, onde
João só poderá dirigir se tiver mais de 18
anos, caso contrário não poderá.
Nesse exemplo 2, utilizamos um “e”, onde
EXEMPLO 2
Maria só poderá se casar se tiver 21 anos e
Se (Maria == Solteira) && (Maria > 21 anos) estiver solteira. Caso somente um dos
então “Maria pode se casar”
eventos seja verdadeiro, ela não poderá se
casar.
EXEMPLO 3
Se (Paula > 0 reais) ou (Paula == 0 reais)
então “Paula ficará em casa”
No exemplo 3, Paula pode ou não ter
dinheiro que ficará em casa do mesmo jeito.
Mas como isso ficaria no Game Maker? Bom, no GM utilizamos no lugar de “se”, o
“if” e no lugar de “então”, usamos “{ }” (abre e fecha chaves).
EXEMPLO 4
If 5 > 3 {
draw_text(x,y,”maior”)
}
Se a condição for verdadeira, executará
tudo o que estiver entre chaves. Lembrando
que, se for só uma linha não é necessário o
uso da chaves, pode ser na mesma linha da
expressão: If 5 > 3 draw_text(x,y,”maior”)
Caso queira colocar mais uma condição caso ela seja falsa, aí entra em ação o “else” (que
em tradução livre é “senão”).
EXEMPLO 5
Se carro < 60Km/h
então “Não leva multa”
Senão “Ele é multado”
EXEMPLO 6
Se (5 == 5) && (5!=6)
então “É igual”
Senão “É diferente”
Para inserir essas condições no Game Maker, a sintaxe é bem parecida com a do Game
Maker, porém envés de “senão”, utilizamos “else”. Vamos fazer o exemplo 7 usando o 4:
Apostila Básica de Lógica e Programação para Game Maker – por Giosepe Luiz 9
EXEMPLO 7
If 5 > 3 {
draw_text(x,y,”maior”)
} else {
draw_text(x,y,”menor”)
}
Se o número 5 for maior que 3, escreva
“maior”, senão, escreva “menor”.
E além de constantes como inteiros,
flutuantes, lógicos e strings, também
podemos utilizar variáveis para comparar.
EXEMPLO 8
If carro < 60 {
draw_text(x,y,”Não é multado”)
} else {
draw_text(x,y,”É multado”)
}
Se o carro não ultrapassar 60 Km/h, ele não
será multado, porém caso ultrapasse, ele
será multado.
Bom, ainda existe um terceiro caso que podemos adicionar, veja no problema a seguir:
Faça um script onde escreva na tela se o numero digitado pelo usuário é maior, menor ou
igual a 5.
A questão é a seguinte, como podemos colocar essa terceira condição se só
obtemos duas? (If e Else)
A resposta é simples, porque podemos inserir sempre uma função dentro da outra, ou seja,
podemos colocar uma condicional dentro da outra, veja na resolução 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)
}
“numero” é a variável onde ficará guardado
o valor que o usuário digitar. Se ele digitar
um número maior que 5, irá escrever na tela
“Maior”, senão, se colocar um número
menor, vai escrever “Menor”, senão,
escreverá “Igual”.
Lembrando que é bom sempre identar.
→ Identar é dar um recuo à direita na linha
inferior, para que a mesma fique
compreensível.
11. CONDICIONAL “SWITCH”
Na condicional “Switch” (“escolha”), é testada uma variável numa sequência de linhas até
que seja encontrada uma coincidência. Após ser encontrada, será encerrada a condição.
Veja o exemplo a seguir:
Apostila Básica de Lógica e Programação para Game Maker – por Giosepe Luiz 10
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;
}
O “n” vale 5, após entrar na
condição, será verificado em
cada caso qual é igual a variável.
Quando encontrar uma linha igual
ao valor da variável, ele saírá da
condição.
O “break” (“parar”), serve para
parar o teste ao encontrar a linha
verdadeira, não continuando a
verificação.
O “default” (“padrão”), é uma
linha onde é ativada quando
nenhuma das condições
anteriores é verdadeira.
O usuário irá pressionar uma
tecla, entrando na condição:
Caso essa tecla for “direcional
esquerdo” ou “numero 4” x
receberá -4 (ou ganhará 4 para a
esquerda). Caso seja “direcional
direito” ou “numero 6” x receberá
4 (ou ganhará 4 para a direita).
12. LAÇO DE REPETIÇÃO “FOR”
Comando “for” (“para” em tradução livre), é um conjunto de execuções com um
número pré determinado de repetições, ou seja, ele executará um loop até que a variável
final chegue. Exemplo:
EXEMPLO 1
Para M de 0 a 100 faça
(…)
fimpara
Nesse exemplo, ele executará o (…) até que
M chegue a 100 (de 1 em 1).
Agora veja como fica no Game Maker:
Apostila Básica de Lógica e Programação para Game Maker – por Giosepe Luiz 11
EXEMPLO 2
for (M=0; M==100; M+=1) {
(…)
}
A diferença para a linguagem do Game
Maker é que somente escrevemos o “for”
(“para”), e em seguida indicamos a variável
que começará, com o valor inicial, o valor
final e quando será acrescentado a cada
loop (separados por ponto-e-virgula).
EXEMPLO 3
for (i=0; i<=60; M+=1) {
carro+=2
}
No final da execução desse laço, o valor de i
será 60 e da variável carro será 120.
13. LAÇO DE REPETIÇÃO “WHILE”
O “While” (“Enquanto”), é um comando onde só tem fim quando a execução é falsa,
ou seja, só sai do loop quando a sequência de comandos for diferente da condição.
Exemplo:
EXEMPLO 1
m=1
while (m < 200)
{
m = m + 1;
draw_text(room_width/2, room_height/2, m)
}
Enquanto “m” for menor que 200, execute o
que está entre chaves.
Na chaves, “m” a cada loop, irá receber ele
e mais um e escreverá na tela..
Ao chegar em 200, sairá do loop, parando
de adicionar a “m”.
Características principais do “While”:
→ O comando pode ser vazio, simples ou bloco;
→ Ele é executado desde que a condição seja;
→ Testa a condição antes de executar o laço, ou seja, se a condição for falsa ele nem
executará o laço, enquanto o “Do-until” executa o laço para depois ver se a condição é
falsa ou verdadeira.
14. LAÇO DE REPETIÇÃO “DO-UNTIL”
Os programadores em geral, conhecem o “Do-while” (“Faça-enquanto”), porém a
linguagem do Game Maker utiliza o “Do-until” (“Faça-até que”) é quase o mesmo caso do
“While”, a diferença é que ele testa a condição depois de executar a sequência de
comandos, e só saíra do laço após a condição ser verdadeira. Vamos rever o exemplo
anterior usando o “Do-until”:
Apostila Básica de Lógica e Programação para Game Maker – por Giosepe Luiz 12
EXEMPLO 1
m=1
do {
m = m + 1;
draw_text(room_width/2, room_height/2, m)
} until (m == 200)
Execute o que está entre chaves, até que
“m” seja igual a 200.
Na chaves, “m” a cada loop, irá receber ele
e mais um e escreverá na tela..
Ao chegar em 200, sairá do loop, parando
de adicionar a “m”.
Veja um outro exemplo do “Do-until”:
EXEMPLO 2
do {
j += 1
draw_text(room_width/2, room_height/2,
"Não 500")
} until (j == 500)
Escreva a frase na tela e adicione 1 ao “j”
até que “j” seja igual a 500.
15. FUNÇÕES
Unidade autônoma no código, que executa uma tarefa particular. Além de deixar o
código mais organizado, ele pode ser utilizado em mais de um evento ou objeto, deixando o
jogo mais leve. Para isso usaremos também a pasta “Scripts” que se localiza na navegação
lateral do Game Maker. Veja o esquema a seguir:
→ 1. Pasta com Lista de Funções (ou Scripts),;
→ 2. Nome dada à função (que mais tarde será usada para chamá-la no objeto);
→ 3. Lista com as execuções da função, onde argument<num> é padrão;
→ 4. Lista contando seus objetos, onde podem ou não usar funções.
Sintaxe “Scripts”: <variavel> = argument<num>
Sintaxe “Objects”: <funcao>(arg0,arg1,arg2...)
Apostila Básica de Lógica e Programação para Game Maker – por Giosepe Luiz 13
15.1 Funções sem Retorno: é uma função que não utiliza um retorno de uma
execução específica. Retornando a última linha de comando, e se necessário 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
Será desenhado na tela o valor executado
na função “teste”, onde argument0 é “20”.
No script, o argument0 foi atribuído para a
variavel “i”, onde em seguida foi adicionado
30 ao valor original, retornando 50 no
objeto.
Será desenhado na tela o valor executado
por “outroteste”, onde argument0 é “3” e
argument1 é “45”.
No script, o argument0 foi atribuído para “m”
e argument1 para “n”.
Logo em seguida foi calculado em “i” a
expressão “6+3” e no fim foi somado “m”
com “n” e atribuído para “k”.
Mas como diz na explicação acima, ele
somente retorna a última linha, então a linha
“i = 6+3” não tem valor significativo para o
objeto.
15.2 Funções com Retorno: é uma função que utiliza um retorno para colocar no
objeto a expressão ou variável. 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))
Será desenhado na tela o valor executado
na função “reto”, onde argument0 é “15”.
No script, o argument0 foi atribuído para a
variavel “p”, onde em seguida foi adicionado
10 ao valor original, retornando “p” mais 50
para o objeto.
Será desenhado na tela o valor executado
por “reto2”, onde argument0 é “4” e
argument1 é “55”.
No script, o argument0 foi atribuído para “o”
e argument1 para “h”.
Apostila Básica de Lógica e Programação para Game Maker – por Giosepe Luiz 14
Pasta “Scripts” nome “reto”
o = argument0
h = argument1
i = 6+3
return m+n
Logo em seguida foi calculado em “i” a
expressão “6+3”. Mas no final ele pede
retorno somente da soma das variáveis “m”
com “n”, ignorando a varável “i” e sua
expressão.
Uma função tem muitas utilidades na criação de um jogo ou programa. No exemplo
abaixo, foi feita uma estrutura com função:
EXEMPLO 3
Nome da Função: “jogo01”
if (keyboard_key == argument0){
x -= 4
} else {
if (keyboard_key == argument1){
x += 4
}
}
Objeto 01: “alfabeto” evento “Step”
Objeto 02: “direcionais” evento “Step”
jogo01(ord('A'), ord('D'))
jogo01(vk_left, vk_right)
Veja que, chamamos o código de teclado em 2 objetos diferentes e com teclas
diferentes, só que os dois utilizam a mesma função, que é fazer os objetos andarem para
esquerda e para a direita. Sendo assim não precisamos repetir o código duas vezes.
Enfim, existem várias outras funções próprias do Game Maker, da próxima vez falarei
mais sobre o assunto. Obrigado pelo download e pela leitura.
Apostila Básica de Lógica e Programação para Game Maker – por Giosepe Luiz 15
Editado por Giosepe Luiz
[email protected]
Versão do Game Maker Usada: 8.0
29 de maio de 2010
Curitiba - Paraná - Brasil
Conheça mais sobre o Game Maker, baixe sprites, engines, outros e
tenha a ajuda que precisar nos sites a seguir:
http://www.gamemakerbrasil.com
http://www.spriters-resource.com
Saiba tudo sobre Informática e Tecnologia, obtendo dicas e downloads
das melhores fontes e sites da web!
http://www.dicasemgeral.com
Apostila Básica de Lógica e Programação para Game Maker – por Giosepe Luiz 16