Aceleración y Fricción

En el mundo real, el movimiento es mucho más complejo de lo que hemos visto hasta ahora. Hay fuerzas que lo producen, otras que lo mantienen y otras que lo frenan. Un objeto en movimiento  está sometido al menos, a dos de ellas: aceleración y fricción. En nuestra sencilla simulación veremos cómo la aceleración pone en movimiento un objeto en la dirección deseada y cómo la fricción frena el movimiento y al mismo tiempo limita la velocidad máxima. Aunque la escena de naves que usaremos para montar un juego de asteroides al final de esta serie de artículos se desarrolla en el espacio, es obvio que en éste no hay atmósfera  y por tanto no puede haber fricción, pero para que el juego tenga una mínima jugabilidad y a efectos de estudio, se ha optado por hacer uso de estas características. También veremos cómo se relacionan entre sí estas fuerzas entendidas como vectores y cómo extraer un vector de dirección a partir del ángulo que forma el eje del objeto con el eje de coordenadas X.

 

Este es el efecto que conseguimos al mover la nave. Podemos girar en cualquier dirección, pero la aceleración sólo se produce en la dirección en la que apunta la nave, que es independiente de la trayectoria y aceleración que tuviera anteriormente.

Leer más Aceleración y Fricción

Colisiones y reflexiones

Hola. En la serie de artículos sobre el evento Draw() del DrawingArea vimos la forma de dibujar objetos y animarlos dentro de la superficie de dibujo, pero se nos plantean dos nuevas cuestiones relacionadas con el movimiento. Por una parte, si un objeto se mueve en línea recta lo que puede ocurrir  es que dicho objeto desaparezca para siempre al sobrepasar los límites de nuestro “lienzo” y por otro lado quizás lo que queremos es que ese objeto rebote contra algún otro cuerpo o los bordes del lienzo o reaparezca de nuevo en pantalla. Comencemos por el último caso. Leer más Colisiones y reflexiones

DrawingArea y su evento Draw() – III

En el post anterior vimos cómo funcionaba el evento Draw del DrawingArea y cómo establecer algunas variables que afectaban a la forma de dibujar. Los métodos y propiedades de la clase Draw () y cómo disparar el evento usando un Timer. Pues bien, si nuestra intención es no sólo dibujar algo en un DA, sino además dotarlo de movimiento, parece lógico pensar que necesitamos disparar el evento Draw varias veces por segundo para conseguir “animar” los objetos. Leer más DrawingArea y su evento Draw() – III