La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

7. Programación en Videojuegos 2D I.. Es un mapa de bits que se dibujan en pantalla. Debe tener transparencias. Para crear una animación se crea una.

Presentaciones similares


Presentación del tema: "7. Programación en Videojuegos 2D I.. Es un mapa de bits que se dibujan en pantalla. Debe tener transparencias. Para crear una animación se crea una."— Transcripción de la presentación:

1 7. Programación en Videojuegos 2D I.

2

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

4 Para más sprites:

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

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

7

8

9

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

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

12 Más imágenes background en

13

14 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; }

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

16

17 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.

18

19 No hay colisión Hay colisión Fuente:

20 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 radio + sp2->radio)) }

21

22 Fuente:

23 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 }

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

25


Descargar ppt "7. Programación en Videojuegos 2D I.. Es un mapa de bits que se dibujan en pantalla. Debe tener transparencias. Para crear una animación se crea una."

Presentaciones similares


Anuncios Google