Jos\u00e9 Carlos Cortizo P\u00e9rez http://www.esp.uem.es/jccortizo
[email protected]
Departamento de Sistemas Inform\u00e1ticos Escuela Superior Polit\u00e9cnica Universidad Europea de Madrid
Ubicaci\u00f3n
Jos\u00e9 Carlos
Indice
Jos\u00e9 Carlos
Indice
José Carlos Cortiz
Motor 2D
Permite gestionar el trabajo con gráfico simple, rápida y eficiente
Al igual que los Motores 3D, suele apoy (OpenGL,DirectX)
Pero aporta un mayor nivel de abstracc
José Carlos Cortiz
Motor 2D
Funcionalidades Típicas Gestión de Sprites
Colocar bitmaps (varios formatos) por p transformaciones y canales alfa Gestión de capas Gestión de la entrada Gestión del sonido etc.
José Carlos Cortiz
Motor 2D Motor 2D vs API
Es difícil establecer el límite
El Motor 2D es un paso más allá de abs nadie establece una barrera clara
Lo único que importa del motor 2D es q
José Carlos Cortiz
Motor 2D Ejemplos
SDL: Simple DirectMedia Layer. Uno de Muchos motores lo utilizan como “API” Haaf’s Game Engine PTK 2D Game Engine Torque Game Builder Pro Allegro: Como SDL
José Carlos Cortiz
PTK
Introducción
PTK es más bien un SDK (Software Dev
Es multiplataforma (Windows/Mac Os X Tiene ciertas capacidades 3D Por debajo utiliza OpenGL o DirectX Se programa con C++
José Carlos Cortiz
PTK
Juegos desarrollados con PTK
José Carlos Cortiz
PTK
en Visual Studio
Para Visual Studio .Net 2003 Conseguir PTK (www.phelios.com/ptk)
Instalar Ptk y descomprimirlo en un directorio fácilm Crear un proyecto de VC++ vacío
José Carlos Cortiz
PTK
en Visual Studio
José Carlos Cortiz
PTK
en Visual Studio
José Carlos Cortiz
PTK
en Visual Studio
Crear un archivo fuente (p.e. main.cpp) Studio se de cuenta de que es un proye
José Carlos Cortiz
PTK
en Visual Studio
Seleccionamos las propiedades del proy Seleccionamos C/C++, y dentro de ahí
Seleccionamos “Todas las Configuracio Configuraciones
En Directorios adicionales incluidos, re libptk\pc\headers, si nuestro proyecto l de Ptk, la podemos referenciar como “. \headers”
José Carlos Cortiz
PTK
en Visual Studio
José Carlos Cortiz
PTK
en Visual Studio
Seleccionamos el Nodo de Linkado, y e él
en Directorios de Librerías adicionales, \libmicrosoftvc, de forma similar al ante \pc\libmicrosoftvc”
José Carlos Cortiz
PTK
en Visual Studio
José Carlos Cortiz
PTK
en Visual Studio
Seleccionamos Linker->Input Node y e Adicionales, metemos: libptkvc.lib ksou opengl32.lib dsound.lib dxguid.lib
José Carlos Cortiz
PTK
en Visual Studio
José Carlos Cortiz
PTK
en Visual Studio
Seleccionamos Debug del panel de Con guardar los cambios, le decimos que si
En la misma página, en Ignorar Librerí “libcmt;libc”. Seleccionamos Aplicar
José Carlos Cortiz
PTK
en Visual Studio
José Carlos Cortiz
PTK
en Visual Studio
Cambiamos a configuración de Release sección de Ignorar Librerías Específica
Seleccionamos el nodo C++->Generaci
En Librerías de Ejecución (Runtime Lib Multi-threaded (/MT) y damos a Aplicar
José Carlos Cortiz
PTK
en Visual Studio
José Carlos Cortiz
PTK
en Visual Studio
Seleccionamos modo Debug y dentro de Multi-Threaded Debug (/MTd) Aplicamos y listo
José Carlos Cortiz
PTK
en Visual Studio
José Carlos Cortiz
PTK
en Visual Studio
Ahora falta añadir una serie de ficheros recursos del proyecto Se encuentran en dónde esté instalado \Lib d3dx.lib; ddraw.lib; dsound.lib; dxguid.lib
OpenGL32.lib; Shell32.lib; WinInet.
José Carlos Cortiz
PTK
Hola Mundo #include "ptk.h" KWindow *window; int WINAPI WinMain(IN HINSTANCE hInstance, IN HINSTANCE hPrevInstance, IN LPSTR lpCmdLine, IN int nShowCmd ) { window = KPTK::createKWindow( K_OPENGL ); window->createGameWindow(640, 480, -1, true, "PTK Example"); window->setClearColor(1.0f, 0,0, 1.0f); window->setWorldView(0,0,0,1.0f, true); int saliendo=0; do { window->setClearColor( 0,0,0,0 ) ; window->setWorldView( 0 , 0 , 0 , 1 , true ); //surf_menu->blitRect( 0,0,1024,768,0,0 ) ; window->flipBackBuffer( ) ; if ( KInput::isPressed( K_VK_RIGHT ) == ISDOWN ) saliendo = 1; } while( saliendo == 0 ); return 0; }
José Carlos Cortiz
PTK: Ejemplo
Desarrollo de un Pacman Como primer objetivo de esta parte de pretende realizar un “pseudo-pacman”
Este pacman tendrá un pacma controla podrá pasearse a su antojo por un laber sitios por donde puede y por donde no p
Existirá un fantasma que tratará de seg
José Carlos Cortiz
PTK: Ejemplo
Desarrollo de un Pacman
El código se encuentra en la web de la
Bajadlo, probadlo, comprendedlo y post Los ejercicios
José Carlos Cortiz
PTK: Ejercicios Ejercicio 2D:1
Modificar el Pacman para que cuándo e Pacman, se acabe la partida y se pida a tecla para continuar. Si la pulsa, se rein
José Carlos Cortiz
PTK: Ejercicios Ejercicio 2D:2
Modificar la Inteligencia del fantasma p parado en algunas esquinas en determi
José Carlos Cortiz
PTK: Ejercicios Ejercicio 2D:3
Crear otro fantasma con otro tipo de in bien el algoritmo elegido y por qué se e
José Carlos Cortiz
PTK: Práctica 1 Juego 2D
Desarrollar un juego en 2D que sea sign del visto en los ejemplos. Céntrese sobr y de control de los sprites. A ser posible ser mejorado posteriormente mediante inteligencia artificial, control del juego,
José Carlos Cortiz
¿Alguna pregunta?
José Carlos Cortiz
Referencias
“Game Art: The Graphic Art of Compute y Dave Morris
“Game Coding Complete” de Mike McS
“Data Structures for Game Programme
“Focus On 2D in Direct 3D” de Ernest P “Focus on SDL” de Ernest Pazera
José Carlos Cortiz