|
17 - Criando Funções
Nós iremos falar agora, cada vez mais assuntos abordando programação de jogos diretamente.
É importante conhecer o básico sobre programação, lendo os capitulos anteriores para não se perder durante os estudos.
Entender e resolver os exercícios ajuda a compreender como programar melhor um jogo.
Todo jogo clássico possui comandos básicos.
Por exemplo, no Super Mario podemos fazer o Mario sair pulando. Sempre que o botão de pulo é precionado, ele vai pular.

Para fazer o Mario pular, os programadores programaram uma sequência de códigos.
Geralmente essa sequencia de códigos é conhecida como uma função.
DICAS IMPORTANTES...
- Uma função é um conjunto de código separado do programa principal, que executa varias operações especiais no programa.
- Esse conjunto de código pode ser chamado pelo programa principal infinitamente
Desta forma, não perdemos tempo escrevendo como o Mario pula mais de uma vez em um mesmo programa, o que ajuda na produtividade ao se contruir um jogo.
|
|
Definição de Funções
Cada programa em C++ apresenta uma função denominada main, que é a função principal, dentro dela podemos chamar várias outras funções.. e agora veremos como
criar nossas proprias funções.
Para criar uma função em C++ devemos seguir os seguintes padrões:
1º tipo de valor de retorno ( lembrando que uma função pode retornar algo )
2º nome da função
3º lista de argumentos
4º declaração de comandos
ou
tipo de valor de retorno nome da função (lista de argumentos)
{
declaração
}
Como C++ é uma lingaguem muito rica, alguns parametros foram adotados para que o programa fique mais rápido.
Uma delas é o Prototipo da função.
VOCÊ PRECISA
SABER...
Toda função de biblioteca padrão possui um prototipo de função, e assim sendo, para seguir uma boa engenharia de softwere, seria interessante que cada função nossa também tive-se seu prototipo.
Toda função é composta por um prototipo e seu retorno .. ( não é obrigatorio o uso de prototipo ) |
|
Vamos declarar uma função que vai somar 2 valores
int soma( int, int) ; // prototipo da função... diz ao compilador que a função soma vai retornar um int e receber dois argumentos int
int soma( int valor1, int valor2)
{
return valor1 + valor2
}
Quando quisermos que uma função não retorne nada ou não receba nada, usamos o tipo Void.
void mensagem ( void ) // prototipo de mensagem, nao retorna nada, nao recebe nada
void mensagem ( void )
{
cout << "MENSAGEM";
}
De início parece chato ficar escrevendo o prototipo. Mas o prototipo de função é um dos recursos mais importantes de C++. Um prototipo diz ao compilador o nome da função, o tipo dos dados retornados, o número de parametros que a função espera receceber e a ordem na qual estas serão recebidas.
Com o prototipo a função é avaliada. E com ele podemos escrever a função aonde quisermos, pois ela sempre tem que estar criada antes de ser usada. Veremos mais tarde exemplos que serão obrigatorios o uso de prototipos, por isso espero que você se acostume a usa-los.
Exemplo com ajuda de Prototipo:
CÓDIGO...
// Programa com funções e seus prototipos
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
#include <cmath>
int quadrado (int); // prototipo da funcao quadrado
int cubo (int); // prototipo da funcao cubo
void msg (void);
int main()
{
int numero = 2;
double num = -2.5;
cout << "O quadrado de "
<< numero
<< " e "
<< quadrado(numero)
<< endl;
cout << "O cubo de "
<< numero
<< " e "
<< cubo(numero)
<< endl;
// outras funcoes padroes
cout << fabs(num) << endl;
cout << pow( numero, 4) << endl;
cout << sqrt( numero ) << endl; // raiz quadrada
msg();
cin;
return 0;
}
// com prototipos podemos iniciar as funções depois
int quadrado ( int valor )
{
valor *= valor;
return valor;
}
int cubo ( int valor )
{
valor *= valor * valor;
return valor;
}
void msg ()
{
cout << "VOID não retorna"
<< endl;
}
FIM DE CÓDIGO...
Funções
em C++ é um assunto bastante complexo, C++ possui várias formas
e maneiras de se trabalhar com funções criadas pelo usuário,
o que faz dessa linguagem muito potênte. De início vamos ver algumas
funções das bibliotecas padrões.
Funções
da biblioteca <cmath>
| cos (x) |
coseno de x |
| exp(x) |
função
exponencial |
| fabs(x) |
valor absoluto
( tira o - ) |
| fmod (x, y ) |
mode de numero
ponto flutuante x/y |
| log ( x ) |
logaritmo natural
de x |
| pow( x, y ) |
x elevado a potência
de y |
| sin ( x ) |
seno de x |
| sqrt( x) |
raix quadrada |
| tan(x) |
tangente de x |
|
Contribuidor
Adriano Waltrick
11/06/2007
|