Ya hablamos anteriormente acerca de como dibujar tu personaje en la pantalla, aunque solo fuera un circulo, y de la misma manera podemos poner otros personajes en la pantalla, el problema que tenemos ahora es como saber si dos o mas de los personajes estan tocandose, para solucionar esto existen los Rects, un rect (un rectangulo) el cual es una especie de contenedor de la superficie, para crear uno basta con:
mi_rectangulo = pygame.Rect(posicion_izquierda, posicion_derecha, ancho, alto)
Donde todas las medidas estan en pixeles, o sea si quiero crear un rectangulo de ancho 100 y de alto 100 en el extremo superior izquierdo de la pantala seria:
Donde todas las medidas estan en pixeles, o sea si quiero crear un rectangulo de ancho 100 y de alto 100 en el extremo superior izquierdo de la pantala seria:
mi_rectangulo = pygame.Rect(0, 0, 100, 100)
Advertencia para los matematicos: la pantalla no es igual al plano cartesiano, en el sentido de que si quieres dibujar algo mas abajo en la pantalla, son mas pixeles, puesto que todo se mide en distancias de pixeles desde el extremos superior derecho de la superficie principal creada.
Aprovecho el tema y la oportunidad para explicar como dibujar un cuadrado en la pantalla, esto se hace muy parecido a los circulos, se hace asi:
pygame.draw(superficie, color, rect)
o sea si la superficie principal es SCREEN, el color azul, y el rectangulo el que declaramos anteriormente, entonces para dibujar el cuadrado seria:
pygame.draw(SCREEN, (0, ,0, 255), mi_rectangulo)
Ahora viene la parte importante, ¿como sabemos si 2 rectangulos estan sobrepuestos?, puesto que nos gustaria saber si nuestra paleta golpeo la pelota, o si una bala dio con un blanco, o si estamos chocando contra una pared.
Para solucionar eso existe la funcion colliderect, y se usa de la siguiente manera mi_rectangulo.colliderect(otro_rectangulo).
La funcion retornara verdadero o falso segun corresponda.
Para solucionar eso existe la funcion colliderect, y se usa de la siguiente manera mi_rectangulo.colliderect(otro_rectangulo).
La funcion retornara verdadero o falso segun corresponda.
Mas adelante entrare mas en el tema de las colisiones que es uno de los puntos criticos a la hora de crear juegos.
No hay comentarios:
Publicar un comentario