7. Programación en Videojuegos 2D I.

Slides:



Advertisements
Presentaciones similares
Curso de java básico (scjp)
Advertisements

Complejidad Computacional
Desarrollo de juegos de video Aprendiendo a programar en C# de manera divertida Sesión 5: Transformación y colisión de sprites
Desarrollo de juegos de video Aprendiendo a programar en C# de manera divertida Sesión 4: Introducción a los sprites y la animación
Introducción a la Programación 8. Datos Numéricos.
TEXTO EN OPENGL INTEGRANTES: ACEVEDO DÍAZ ELOISA
GRÁFICOS DE VECTORES Y GRÁFICOS RASTERIZADOS
GRAFOS ESTRUCTURAS DE DATOS.
Marcos y multimedia con html
Informática I – 4to año Volumen II.
Funciones y recursividad
Centro de estudios Tecnológicos del Mar nO.20 ~Sistemas de Información Geográfica~ Betzaide Viridiana Luna Cruz 22s1.
3. Introducción a C++.. [signed | unsiged] [tipo_variable] [tipo_variable] bool death; unsigned short vidas; float posicionX; float aceleracion; double.
Introducción a la Graficación por Computadora
INFORMATICA I Funciones CLASE 13.
9. Detección de Circunferencias. Transformada de Hough
Es el arte de instruir a un computador sobre los pasos necesarios para resolver los problemas que influyen en la creación de un videojuego. Es el.
Abstracción de Datos La abstracción es un recurso fundamental en la programación orientada a objetos y está además fuertemente ligado a reusabilidad.
Estructuras de Datos Manipulación de la Especificación de la Lista en C++
Genericidad Una clase genérica encapsula una estructura y brinda un conjunto de servicios cuya implementación no depende del tipo de las componentes.
 Qué puede hacerse  Fundamentos  Primeros ejemplos  Primer Juego.
Método en Java.
Conceptos Adicionales sobre Variables y Constantes y la clase Math
Simulación con agentes Luis Fabiani Bendicho ISBC - Enero 2000.
LA FISICA DEL DEPORTE Daniel Alonso Gil Diego Caso Parajon.
Graficación IV. Síntesis de imagen. Detección de superficie visible Para sintetizar una imagen que parezca real, es necesario determinar qué objetos están.
UNIVERSIDAD TÉCNICA DEL NORTE
PRIMITIVAS DE SALIDA Curso de graficación I.
Tema 9 Estructuras.
VECTORES VS PIXELES Por Drako.
El lenguaje de programación Java
JAVA J.A.C..
Tema 2: Los tipos de datos
Análisis y Diseño de Algoritmos. Propiedades : f ( n )  O ( f ( n ) ) a ) O ( f ( n ) )  O ( g ( n ) )  f ( n )  g ( n )
3.  Recursividad.
Algoritmos para Ordenar datos
Java. Java nació el año 1991, por un par de ingenieros de la Sun Microsystems.
Introducción a Java (2ª parte) - excepciones, colecciones, i/o, … -
IIC Creación de Videojuegos Nicolás Mery Programación de juegos en J2ME para celulares.
Conceptos Fundamentales Graficaci ó n IA7200-T. Graficación2 Conceptos Fundamentals Perspectiva Hist ó rica Modelo de una Computadora - Memoria y Dispositivos.
Valor X Valor Y Punto (0,0) Coordenadas.
FORMATO DE ARCHIVOS.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
IIC Creación de Videojuegos Sebastián Montabone Programación de juegos en J2ME para celulares.
Image Sprites. Uso de Image Sprites Es una colección de imágenes colocadas en una simple imagen: Una página web con muchas imágenes puede tardar mucho.
Pilas y Colas Estructuras de Datos.
Graficación II. Algoritmos.
Universidad Simón Bolívar Departamento de Computación CI5321 Computación Gráfica II Dinámica Jessica Fariñas Yessica De Ascencao.
ELABORACIÓN DE DOC. ELECTRÓNICOS UTILIZANDO SOFTWARE DE APLICACIÓN.
Capacitación de Herramientas para el Desarrollo WEB Modulo III- Compresión y Formato de Imágenes Sesión #1 María Paz Coloma M.
FUNCIONES Conceptos básicos. Retorno de una función Clases de funciones. Paso de parámetros. Funciones y arrays.
( size ) PANTALLA DE COMPUTER Es como una malla de pequeños puntos (pixeles) Ej: laptops tienen 1,764,000 pixeles (1680 ancho x 1050 alto) LCD 1,310,720.
Graficación IA7200-T Algoritmos Clásicos.
Universidad Autónoma de Baja California Fireworks MX Delia Esquer Meléndez Agosto 2008.
Características Topológicas de Imágenes 3D
Imágenes en el PC Fuente: Curso HTML del CNICE. Tipos de imagen A grandes rasgos podríamos dividir las imágenes digitales en dos grupos: Imágenes vectoriales,
Ordenamiento por Intercambio Directo
Adobe Ilustrator Creative Suite
Arduino y la Educacion Carlos Solines. Arduino Arduino es una plataforma de hardware libre, basada en una placa con un microcontrolador y un entorno de.
Colisiones.. Introducción Algo que vemos mucho en bastantes videojuegos, y que por el momento no se ha visto “bien”, son las colisiones, pero, para empezar;
Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz Implementar un TDA Matriz que brinde operaciones para calcular.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Caso.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Tipo.
75.41 Algoritmos y Programación II Cátedra Ing. Patricia Calvo Complejidad algorítmica.
Tipos de datos básicos en Java
ARREGLOS. La sintaxis para declarar e inicializar un array será: Tipo_de_variable[ ] Nombre_del_array = new Tipo_de_variable[dimensión]; También podemos.
Todo con bits Transmisión de imágenes.
LENGUAJE DE PROGRAMACIÓN
El contexto gráfico La función paint y update nos suministran el contexto gráfico del applet o del componente, en otros casos, hemos de obtener el contexto.
Introducción al Lenguaje C (I) Tipos básicos, arrays y punteros Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión
Transcripción de la presentación:

7. Programación en Videojuegos 2D I. Programación Gráfica 7. Programación en Videojuegos 2D I.

7.1 Sprites

Sprites Es un mapa de bits que se dibujan en pantalla. Debe tener transparencias. Para crear una animación se crea una secuencia de sprites.

Secuencia de sprites Para más sprites: http://www.nes-snes-sprites.com

Utilizando 1 imagen Para mover sólo cambiamos la posición: void SetPosition(float x, float y) { position->x = x; position->y = y; }

Utilizando 1 imagen Para pintar sólo dibujamos la imagen en la posición del sprite. void Draw( Graphics g ) { g->DrawImage(image, posX, posY); }

7.2 Background

Utilizando 1 imagen

Utilizando 1 imagen

Utilizando 1 imagen Movemos el background hacia la izquierda a una velocidad constante. Move() { posX += velocityX; if( posX <= -pantalla->width) posX += pantalla->width; }

Utilizando 1 imagen Pintamos la imagen hasta que complete toda el ancho de la pantalla. Draw(Graphics graphics) { for(int i=posX; i<pantalla->width: i+=image- >width) graphics->drawImage(image, i, 0); }

Utilizando un conjunto de imágenes Más imágenes background en http://www.panelmonkey.org

Utilizando un conjunto de imágenes

Utilizando un conjunto de imágenes Movemos de derecha a izquierda. Move() { posX += velocityX; if(posX <= -imagen[ imagen_actual] == nImage) { posX += width; image_actual++; if(image_actual == nImage) image_actual = 0; }

Utilizando un conjunto de imágenes Pintamos todo el conjunto de imágenes que representan en fondo del videojuego. Draw(Graphics graphics) { for(int i=posX, j=imagen_actual; i<pantalla->width; i+=imagen[j]->width) graphics->drawImage(image[j++], i, 0); if(j == nImage) j = 0; }

7.3 Collision Detection

Collision Detection Conjunto de algoritmos matemáticos que nos permiten detectar si 2 objetos están colisionando. Sin ellas podemos decir que NO puede existir un videojuego. El algoritmo varía dependiendo de la forma de los objetos. El algoritmo clásico es collisión box, y hoy en día se utiliza per-pixel-collision.

Detección de Colisiones Entre Círculos

Detección de Colisiones Entre Círculos Hay colisión No hay colisión Hay colisión Fuente: http://juank.black-byte.com/xna-colisiones-2d/

Detección de Colisiones Entre Círculos bool IsCollision(Sprite sp1, Sprite sp2) { float dx = (sp2->x – sp1->x); float dy = (sp2->y – sp1->y); float distance = sqrt( dx*dx + dy*dy); return ( distance <= (sp1->radio + sp2->radio)) }

Collision Box

Collision Box Fuente: http://juank.black-byte.com/xna-colisiones-2d/

Collision Box bool IsCollision(Sprite sp1, Sprite sp2) { if( (min( sp1->width + sp1->x, sp2->width + sp2->x) >= max(sp1- >x, sp2->x)) if( (min( sp1->y, sp2->y) >= max(sp1->y + sp1->height, sp2- >height)) return true; } return false

Per-Pixel-Collision La detección de colisiones se realiza por la superposición de los pixeles entre 2 sprites. Para más información: http://www.significant- bits.com/the-1-pixel- collision-box

Preguntas ¿?