1 / 24

Desarrollo de juegos de video Aprendiendo a programar en C# de manera divertida Sesión 5: Transformación y colisión de s

Desarrollo de juegos de video Aprendiendo a programar en C# de manera divertida Sesión 5: Transformación y colisión de sprites. edgar.sanchez@logicstudio.net. Objetivos de esta serie. Dar a los participantes una introducción a algunos de los conceptos fundamentales del desarrollo de juegos

wren
Download Presentation

Desarrollo de juegos de video Aprendiendo a programar en C# de manera divertida Sesión 5: Transformación y colisión de s

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Desarrollo de juegos de videoAprendiendo a programar en C# de manera divertidaSesión 5: Transformación y colisión de sprites edgar.sanchez@logicstudio.net

  2. Objetivos de esta serie • Dar a los participantes una introducción a algunos de los conceptos fundamentales del desarrollo de juegos • Introducir la programación con Visual C# 2005 Express Edition, el nuevo IDE (ambiente de desarrollo integrado) de Microsoft para programadores principiantes

  3. Visión de esta sesión • Sesión 5/8 – Transformaciones, colisiones y velocidad en los sprites • Transformación • Colisión • Velocidad

  4. Transformaciones • Traslaciones • Rotaciones • Escalamiento

  5. Traslaciones • Una transformación de traslación se aplica a un objeto reposicionándolo • En esencia, moviéndolo de una coordenada a otra a lo largo de una línea recta

  6. Traslaciones • tx y ty se denominan las distancias de traslación a lo largo de los ejes x e y • T(tx,ty) es llamado el vector de traslación

  7. Rotaciones • Las rotaciones rotan un punto a lo largo de una ruta circular • Para especificar una transformación de rotación necesitamos: • Un ángulo • Un punto pivote (referencia para la rotación) • Un eje de rotación (En 2D, el eje es perpendicular al plano x-y, o sea el eje z) • Especificar un ángulo de rotación positivo (contra agujas de reloj) o negativo (agujas de reloj)

  8. Rotaciones • Nótese como un ángulo de rotación positivo rota el punto contra agujas de reloj y un ángulo de rotación negativo rota el punto a favor de las agujas de reloj

  9. Escalamiento • El escalamiento altera el tamaño de los objetos • En 2D, se requiere dos factores de escalamiento, sx y sy • Estos factores escalan al objeto en las direcciones x e y • El escalamiento se hace multiplicando las coordenadas x-y de cada vértice del objeto por sus factores de escalamiento • Por ejemplo, si tenemos el vértice en (x,y), lo escalaríamos de esta manera: x’ = sx ● x y’ = sy ●y • Si sx = sy tenemos un escalamiento uniforme

  10. Colisión rectangular • Cada cuadro es una imagen rectangular • El rectángulo define los límites del sprite • Calculando las posiciones de dos sprites (rectángulos), se puede determinar si hay una colisión

  11. Detección de una colisión o intersección • El límite de la primera caja limitante está determinado por L=1, B=1, R=3, T=3 • El límite de la segunda caja limitante está determinado por L’=2, B’=2, R’=4, T’=4 • Hallar lo siguiente: • Max(L, L’) = Max(1,2) = 2 • Max(B, B’) = Max(1,2) = 2 • Min(R, R’) = Min(3,4) = 3 • Min(T, T’) = Min(3,4) = 3

  12. Detección de una colisión o intersección • Las dos cajas limitantes se intersecan si: • Max(Max(L, L’) - Min(R, R’), Max(B, B’) - Min(T, T’)) <= 0 • Max(2-3, 2-3) <= 0 • Max(-1, -1) <= 0 • -1 <= 0, luego hay intersección Las dos cajas limitantes se intersecan y forman un nuevo rectángulo: L=2, B=2, R=3, T=3

  13. Detección de una colisión o intersección • El límite de la primera caja limitante está determinada por: L=1,2, B=1, R=2,8, T=2,6 • El límite de la segunda caja limitante está determinada por: L=3,6, B=3, R=5,3, T=4,5 • Encontrar lo siguiente: • Max(L, L’) = Max(1,2, 3,6) = 3,6 • Max(B, B’) = Max(1, 3) = 3 • Min(R, R’) = Min(2,8, 5,3) = 2,8 • Min(T, T’) = Min(2,6, 4,5) = 2,6

  14. Detección de una colisión o intersección • Las dos cajas limitantes se intersecan si: • Max(Max(L, L’) - Min(R, R’), Max(B, B’) - Min(T, T’)) <= 0 • Max(3,6 – 2,8, 3 – 2,6) <= 0 • Max(0,8, 0,4) <= 0,8 • 0,8 > 0, luego no hay intersección Las dos cajas limitantes no forman un nuevo rectángulo puesto que el resultado es positivo

  15. Sistemas de coordenadas diferentes • Un sistema de coordenadas de pantalla tiene la parte superior izquierda en (0, 0):

  16. Sistemas de coordenadas diferentes • La misma ecuación de la sección anterior se aplica con las siguientes observaciones: • Nada cambia con respecto a la izquierda y derecha • Puesto que el techo es menor que el fondo: • Max(B, B’) debe convertirse en Min(B, B’) • Min(T, T’) debe convertirse en Max(T, T’) • Así que la ecuación final es: • Max(Max(L, L’) – Min(R, R’), Min(B, B’) – Max(T, T’)) <= 0

  17. Sistemas de coordenadas diferentes

  18. Velocidad • El vector velocidad V(x, y) describe la velocidad y la dirección de un objeto en movimiento • Velocidad • La velocidad es la magnitud de V(x, y) • Ejemplo: • Dirección • Los vectores unitarios son vectores que tienen longitud uno y se usan para indicar la dirección • Ejemplo: uv(x/L, y/L) dónde L es la distancia desde el origen

  19. Velocidad • Dirección de un sprite usando coordenadas vectoriales • Obtener la longitud L del vector (x, y) • El vector unitario es: • X = x/L • Y = y/L • Usando el sistema de coordenadas descrito anteriormente • X = x/L • Y = -y/L

  20. Resumen de la sesión • Transformación, colisión y velocidad de los sprites • Transformación • Colisión • Velocidad

  21. ¿Deseas aprender más? • DigiPen Institute of Technology ofrece una variedad de vías para explorar una carrera en el desarrollo de juegos de video: • La serie original de webcasts sobre desarrollo de juegos - Realizada en mayo del 2005. Se puede ver en http://www.microsoft.com/events/series/msdnvideodev.mspx • El código de esta sesión está en http://www.digipen.edu/webcast/ • Talleres de verano – Series de clases introductorias en programación de juegos, producción de animaciones 3D y robótica. Más información en http://workshops.digipen.edu • ProjectFUN Distance Learning – DigiPen tiene cursos en línea impartidos por sus instructores. Más información en http://projectfun.digipen.edu

  22. Preguntas y respuestas • Proponer preguntas usando el botón “Ask a Question” • No te olvides de llenar la encuesta • Para webcasts futuros y pasados (en inglés) http://www.microsoft.com/webcasts • Para webcasts futuros y pasados (en castellano) http://www.microsoft.com/spanish/msdn/latam/video • Esta serie de webcasts está grabada en http://www.microsoft.com/spanish/msdn/latam/video/academic.asp • Este webcast fue presentado usando Microsoft Office LiveMeeting. Se puede obtener una prueba de 14 días gratuita en http://www.microsoft.com/presentlive

  23. ¿Dónde se puede obtener MSDN? • Llenar la encuesta al final del webcast y pedir a un representante de Microsoft que le contacte • Convertirse en un suscriptor de los CDs/DVDs de MSDN en http://msdn.microsoft.com/subscriptions

  24. Control del jugador de los sprites Nos vemos la próxima semana para…

More Related