Resolvi estudar a GS2D feita por Andre Santee, e gostei bastante dos resultados. Ai resolvi escrever um pequeno tutorial e colocar aqui no Ponto V. Os tres unicos pre-requisitos sao:- Ter lido o primeiro post sobre a GS2D;- Ter realizado todos os passos do post;- Ser familiar com as sintaxes do C++. Bom, vamos ao que interessa. 1- Criando efeitos sonoros: As seguinte linha tem como finalidade criar um smartpointer para o sistema de audio e inicializa-lo. AudioPtr audio = CreateAudio(0); As seguintes linhas tem como finalidade criar um smartpointer para o seu efeito sonoro ou musica, e carrega-lo no sistema da GS2D para ser usado.A constante GSST_SOUND_EFFECT e uma constante que diz que o sample carregado e um efeito sonoro.Voce tem outras opcoes de constante, para musica por exemplo voce usaria: GSST_MUSICPara efeitos sonoros de ambiente voce usaria GSST_AMBIENT_SFX e assim por diante. AudioSamplePtr asp;asp = audio->LoadSampleFromFile(L"pastaOndeEstaoOsRecursos/efeitoSonoro.formato", GSST_SOUND_EFFECT); As seguintes linhas, voce deve colocar dentro do seu loop de jogo.while(true){ asp->Play();} Provavelmente voce vai querer toca-lo quando objetos colidirem, ou quando voce realizar alguma acao com seu ator de jogo, por exemplo. O que cria a necessidade de voce saber ler inputs. 2- Lendo inputs: Primeiro voce precisa de um InputPtr InputPtr input = CreateInput(0,true); A cada iteracao do loop de jogo voce precisa chamar o Update para atualizar o estado de todas as teclas do teclado. input->Update(); Para checar o estado de uma tecla: if (input->GetKeyState(GSK_ESC == GSKS_DOWN)){ //fazer algo} Voce pode perceber que sao bem intuitivos os prefixos da GS2D. GSK_ e um prefixo para constantes de teclas (GameSpaceKey) e GSKS_ para estado de teclas (GameSpaceKeyState). Voce pode checar outros valores possiveis pelo recurso auto completar na sua IDE, caso ela tenha esse recurso disponivel. 3- Desenhando Texto video = CreateVideo(larguraTela,alturaTela, L"Titulo",ehWindowed,permitirvsync,L"pastaOndeEstaoSeusArquivosFnt/",GSPF_UNKNOWN,ehMaximizavel); Para poder desenhar texto com a GS2D tem um detalhe importante que voce precisa prestar atencao ao inicializar a engine. Voce precisa passar o nome da pasta onde estao seus arquivos .FNT. Voce tambem precisara de um arquivo .bmp com a fonte "BitMapizada" (se me permite o neologismo). Voce pode criar esses dois arquivos usando o programa: AngelCode Bitmap Font generator Para desenhar texto, dentro do seu loop onde voce desenha as coisas na tela: video->DrawBitmapText(Vector2(cordenadax,cordenaday), L"textoQueDesejaEscrever", L"nomeDaFonte.fnt",gs2d::GS_WHITE); 4- Desenhando Sprites animadas: Primeiro voce precisa de um SpritePtr, que deve ser criado pelo seu sistema de video (VideoPtr) SpritePtr suaSprite = video->CreateSprite(L"suaPastaDeRecursos/nomeDaSprite.png"); Para ela ser uma sprite animada, voce precisa que a sua imagem com a spritesheet seja dividida em frames, e que cada frame tenha exatamente o mesmo tamanho. A proposito, isso geralmente e padrao nas engines. Entretanto, o seu arquivo onde esta a spritesheet, dificilmente seguira um padrao. Ja vi spritesheets de varios tamanhos com mais ou menos frames. Para usar sprites animadas, voce deve configurar o numero de retangulos de sprite pela linha: suaSprite->SetupSpriteRects(colunas,linhas); Segue a sprite sheet que usei como exemplo: Em seguida dentro do seu loop onde esta a logica de desenho voce precisa dizer qual e o retangulo atual pela linha: suaSprite->SetRect(coluna,linha); Voce precisa montar a sua logica de animacao tendo