Hola a todos , Tanto tiempo no?, Bueno hoy les traigo una manera para crear su propio motor gráfico, sencillo y básico, el motor que crearemos sera en 2D y para crearlo necesitaremos C++ y Las Biblioteca SDL2 Como base, Ahora aviso, Cuando mas avancemos en estos tutoriales divididos en varias partes, agregaremos mas funciones al motor utilizando bibliotecas extras y otra cosa, en este caso trabajaremos sobre el SO Windows.
Para empezar tenemos que descargarnos Visual studio Express a partir del 2013 en adelante.
Si no también pueden utilizar cualquier otro IDE que soporte MinGW
Links: , MinGW
Bueno una ves instalado esto, Necesitamos la Biblioteca SDL2
Links:
Bueno Una ves instalado el VSE(Visual studio Express) descomprimimos las bibliotecas en "C:/Development"
El siguiente paso es crear un nuevo proyecto vació de c++, Luego entramos en propiedades y buscamos "Añadir Directorios VC++" para añadir nuestro directorio "C:/Development/SDL2/include" en los directorios de busqueda de cabeceras y el directorio "C:/Development/SDL2/lib/x86" en las de busqueda de bibliotecas.
Una ves hecho esto, Como todo artista necesitamos un lienzo para dibujar. Para eso crearemos Una ventana y Un Renderer, para dejarlo mas en claro el renderer seria el lienzo, y la ventana el soporte donde lo descansamos.
El renderer puede variar dependiendo lo que queramos hacer, Puede ser 3D, 2D. y la ventana puede ser a nuestro gusto, Osea, Modo ventana, fullscreen, etc..
Para esta primera parte, crearemos una ventana simple, de 1280x720 Con un pequeño codigo que dejare mas abajo, si esperas 3 segundos la ventana se cierra automaticamente, sencillo y poco interactivo, pero de momento nos sirve.
Bueno, el codigo es el siguiente.
#include <lostream>
#include <string>
#include <SDL2/SDL.h>
using namespace std;
int main(int argc, const char * argv[])
{
SDL_Window* window;
SDL_Renderer* renderer;
string title;
int windowMode;
int posX;
int posY;
int width;
int rendererMode;
int index;
SDL_Init(SDL_INIT_VIDEO);
Title = ""
///Title: Define el titulo de la ventana, entre las Comillas podemos poner a gusto lo que queramos, basicamente es lo que sale en el nombre de la ventana
windowMode = SDL_WINDOW_OPENGL;
posX = SDL_WINDOWPOS_CENTERED;
posY = SDL_WINDOWPOS_CENTERED;
width = 1280;
/// el width define la altura de la ventana, Esto pueden cambiarlo segun su resolucion de pantalla, mas que nada para no tener conflictos.
height =720;
//Puede ser modificado al igual que el width.
rendererMode = SDL_RENDERER_ACCELERATED;
window = SDL_CreatedWindow(title.C_str(), posX, posY, width, height, windowMode);
renderer = SDL_CreatedRenderer(window, index, rendererMode);
SDL_Delay(3000);
SDL_DestroyWindow(window);
SDL_DestroyRenderer(renderer);
SDL_Quit();
return 0;
}
Bueno. Aqui Concluimos esta Primera parte, Recomiendo que escriban el codigo a mano para evitar fallos.