Escalonar e Redimensionar Imagens

18:21
Este exemplo mostra como Utilizar a TSE em conjunto com a SDL_Billinear para girar e escalonar imagens



Exemplo 5 (Megaupload)

Colisões com o Mouse

23:51
Esse exemplo mostra como é possível detectar momentos em que o mouse encosta nas imagens de formas comuns.



Exemplo 4 (MegaUpload)

Foram feitas algumas modificações na Engine.

TSEngine (SDL)

10:17
TSEngine é uma engine feita sobre o SDL, adicionando facilidades para desenhar imagens, usar sons e algumas rotinas genéricas. Tem também uma Gui incompleta mas que funciona.

Depois de corrigir alguns novos bugs encontrados, estou postando uma nova versão aqui.

Novos exemplos serão adicionados muito em breve.

Loops - For, While, Do While

11:07
For, While e Do While

Quando o código for repetitivo, você pode usar os Loops.

Diferença entre eles:
for(declara-se a variavel que será usada como contador;condição de parada;funcao executada a cada loop)
Os parametros sao separados necessariamente por ; (ponto e virgula).

while(condição de parada)

do{
}while(condição de parada);

No while, a checagem é feita antes do primeiro loop, no do while, o loop é executado antes da checagem.

Exemplo:

#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
  int moedas = 0;

  for(int i=0;i<5;i++)
  {
    cout<<"Voce achou "<<i<<" moedas de ouro."<<endl;
    moedas += i;
  }
    for(int i=2;i<16;i+=2)
    {
      cout<<"Voce achou "<<i<<" moedas de ouro."<<endl;
      moedas += i;
    }

    cout<<"Voce tem "<<moedas<<" moedas de ouro."<<endl;

    while(moedas>30){
      moedas--;
    }
    cout<<"Voce tem "<<moedas<<" moedas de ouro."<<endl;

    do{
      moedas++;
    }while(moedas<50);
    cout<<"Voce tem "<<moedas<<" moedas de ouro."<<endl;

}

Switch/Case

10:50
Switch e Case é usado quando se há muitas possibilidades em uma checagem, como se fossem vários ifs e elses.

Um pequeno exemplo:

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    char vocacao = 'g';

    switch(vocacao){
      case 'e':
        cout<<"Voce e um elfo."<<endl;
        break;
    case 'g':
        cout<<"Voce e um guerreiro."<<endl;
        break;
      case 'h':
        cout<<"Voce e um guerreiro hibrido."<<endl;
      case 'm':
        cout<<"Voce e um mago."<<endl;
        break;
      default:
        cout<<"Vocacao Indefinida."<<endl;
        break;
    }
}

Note que para cada valor da funcão, um case é acionado e é executado todo e qualquer comando até que se encontre um break;

O guerreiro hibrido nesse caso, também é um mago, e as duas frases serão escritas.

If e Else

13:16
If e Else são usados para tomar decisões baseadas em resultados, o bloco if else, sempre começa com o if e pode ou não ter chaves.

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    int agilidade = 5;
    if(agilidade == 5)
      cout<<"Que rapido!"<<endl;
    else
      cout<<"Quase la!"<<endl;
}


E pode ter mais de duas checagens usando o else if


#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    int vida = 10;

    if(vida == 10)
       cout<<"Vida = "<<vida<<" (vida cheia)"<<endl;
    else if(vida > 5)
      cout<<"Vida = "<<vida<<" (quase cheia)"<<endl;
    else
      cout<<"Vida = "<<vida<<" (pouca vida)"<<endl;

    cout<<"Inimigo avistado"<<endl;
    int inimigo = 3;

    cout<<"Inimigo atacou"<<endl;
    vida = vida - inimigo;

    if(vida == 10)
      cout<<"Vida = "<<vida<<" (vida cheia)"<<endl;
    else if(vida > 5)
      cout<<"Vida = "<<vida<<" (quase cheia)"<<endl;
    else
      cout<<"Vida = "<<vida<<" (pouca vida)"<<endl;

    cout<<"Inimigo atacou"<<endl;
    vida = vida - inimigo;

      if(vida == 10)
      cout<<"Vida = "<<vida<<" (vida cheia)"<<endl;
    else if(vida > 5)
      cout<<"Vida = "<<vida<<" (quase cheia)"<<endl;
    else
      cout<<"Vida = "<<vida<<" (pouca vida)"<<endl;


    system("PAUSE");
    return EXIT_SUCCESS;

}

C++ - Variáveis

12:17
Quando programamos, precisamos de algum lugar para colocar as informações do nosso programa/jogo.

Este lugar é a memória do computador, que pode ser utilizada usando o que chamamos de variáveis.

Vamos imaginar o seguinte código:

#include <cstdlib>
#include <iostream>

using namespace std;
  
int main(int argc, char *argv[])
{
    int vida = 10;
 
    cout<<"Vida = "<<vida<<endl;
    
    system("PAUSE");
    return EXIT_SUCCESS;    
}

Na linha "int vida = 10;", temos o comando int que significa que estamos declarando uma variável do tipo inteiro (Número Inteiro que pode variar de -2.147.483.648 até 2.147.483.647).

Qual a diferença entre escrever:

int vida = 10;
cout<<"Vida = "<<vida<<endl;
e
cout<<"Vida = "<<10<<endl;
?

Nesse caso nenhuma mas, usamos as variáveis para dar nome aos valores e usá-los de forma bem genérica.

Vamos supor:


#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    int vida = 10;
    int dano = 2;
    
    vida = vida - dano;

    cout<<"Vida = "<<vida<<endl;


    system("PAUSE");

    return EXIT_SUCCESS;     

}



No exemplo acima, não poderíamos utilizar a expressão
"vida = vida - dano;" sem uma variável, ficaria 10 = 10 - 2; ?

Não faz muito sentido. Ou poderíamos colocar '8' na hora de escrever na tela, diretamente:
cout<<"Vida = "<<8<<endl;

Mas qual seria a vantagem de usar um programa de computador?...


Outros tipos de variáveis:
bool - pode assumir os valores true ou false;
Ex: bool correndo = true;

char - pode assumir o valor de qualquer caracter;
Ex: char vocacao = 'm';

float - pode assumir o valor de números fracionários;
Ex: float altura = 1.98;


double - pode assumir valores similares ao float e uma maior precisão nas operações;
Ex: double altura = 1.98;



Existem outros tipos também mas não gostaria de falar sobre eles agora.


Informações retiradas de:
http://pt.wikiversity.org/wiki/Curso_de_C%2B%2B/Tipos_de_dados

C++ - Primeiros Passos

11:32
Eu passei grande parte da minha infância tentando programar  mas eu não fazia a menor idéia de onde eu digitava os códigos que eu ia encontrando.

Eu gostaria de fazer um passo-a-passo desde o primeiro passo mesmo até mais adiante.

O que você vai precisar?
- Um Compilador - Programinha que transforma seu código em um executável.
- Uma IDE - Programa que te auxilia na hora de fazer seus programas.

Acho que é só isso.
Só depois que eu entrei pra faculdade que eu descobri essas coisas, me arrependo de não ter procurado mais antes, e olha que eu procurava diariamente.

Primeiro Passo
Instalar os programas citados, existe uma IDE chamada DEV-CPP que pode ser baixada em:
http://www.bloodshed.net/dev/devcpp.html

Baixe a versão:
Dev-C++ 5.0 beta 9.2 (4.9.9.2) (9.0 MB) with MinGW/GCC 3.4.2

Esse Mingw é um compilador e acho que teremos tudo que precisamos.

Não vou explicar o processo de instalação porque é muito simples mesmo.

Após instalado Abra o Dev-Cpp, Vá em File->New->Project

Marque a opção C++ Project caso não esteja marcada, e clique duas vezes em Console Application (Ou clique só uma vez e depois clique em OK).

Selecione o diretório onde você quer salvar seu projeto e será nesse local que ficarão os arquivos relacionado a este projeto.

Após salvar a tela muda e aparece um código já preenchido:
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    system("PAUSE");
    return EXIT_SUCCESS;
}

Antes da linha:
system("PAUSE");
Escreva:
cout<<"Ola Mundo"<<endl;

Seu código ficará assim:
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    cout<<"Ola Mundo"<<endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}

Explicações:
cout é o comando usado para escrever na tela
endl é o comando usado para pular uma linha
Tudo o que estiver entre aspas será escrito exatamente como está


Aperte F9 para compilar, o programa pede para que você salve o arquivo main.cpp, você pode salvar no mesmo diretório.

Automaticamente o programa será compilado e será exibida uma tela preta exibindo
Ola Mundo
Pressione qualquer tecla para continuar...

Ao apertar qualquer tecla, a janela fecha.

Sim, o programa só faz isso mas... o começo é o começo.


Se quiser usar o Eclipse para os exemplos, leia os tutoriais:
Instalar e Configurar o Eclipse CDT
(Faça até o passo 2)

Executar seu Projeto diretamente no Eclipse