Tu estás aquí: ¡Bienvenido! » Traducciones » pygame » Rect
Usuario
Buscar páginas
Esta Pagina
General

Rect

Rect

pygame.Rect(left, top, width, height): return Rect
pygame.Rect((left, top), (width, height)): return Rect
pygame.Rect(object): return Rect

Pygame utiliza objetos Rect para almacenar y manipular areas rectangulares. Un objeto Rect se puede crear a partir de una combinación de valores izquierda, arriba, ancho y alto. También se pueden crear desde objetos python que ya sean un objeto Rect o tengan un atributo de nombre rect.

Cualquier función de pygame que requiera un argumento Rect también acepta cualquiera de eso valores para construir un rectángulo. Esto hace mas sencillo crear objetos Rect en el aire como argumentos a funciones.

Los métodos de Rect que cambian la posición o el tamaño del rectángulo retornan una nueva copia del objeto con los cambios realizados. El rectángulo original no se modifica. Algunos métodos tiene una versión alternativa de estas funcionalidades pero que actúan sobre el objeto mismo y retornan None. Estos métodos alternativos se denotan con el sufijo “ip”.

El objeto Rect tiene varios atributos virtuales que se pueden usar para mover o alinear un rectángulo.

  • top, left, bottom, right
  • topleft, bottomleft, topright, bottomright
  • midtop, midleft, midbottom, midright
  • center, centerx, centery
  • size, width, height
  • w,h

Todos estos atributos se pueden asignar así:

rect1.right = 10
rect2.center = (20,30)

Asignar un valor a size, width o height cambia las dimensiones del rectángulo, todas las otras asignaciones mueven el rectángulo pero sin alterar el tamaño. Note que algunos atributos son números enteros y otros son pares de números enteros.

Si un rectángulo tiene atributos width o height distintos de cero, entonces retornarán True por una consulta distinta de cero. Algunos métodos retornan un rectángulo con tamaño 0 para representar un rectángulo inválido.

Las coordenadas para objetos Rect siempre son números enteros. Los valores de tamaño se pueden programar para tener valores negativos, pero estos se consideran no válidos para la mayoría de las operaciones.

Existen varios métodos para consultar colisiones con otros rectángulos. La mayoría de los contenedores de python se pueden utilizar para buscar colisiones entre varios rectángulos contra uno.

El área cubierta por un rectángulo no incluye los pixeles que se encuentran en el límite inferior y derecho. Si el borde inferior de un rectángulo es igual al borde superior de otro rectángulo (por ejemplo rect1.bottom = rect2.top), los dos ocupan la misma linea en pantalla pero no se superponen, y la consulta a rect1.colliderect(rect2) retornará False.

move

Mueve el rectángulo.

Rect.move(x, y): return Rect

Retorna un nuevo rectángulo que está desplazado en la cantidad indicada. Los argumento x e y pueden ser cualquier valor entero, positivo o negativo.

move_ip

Mueve el rectángulo afectando al objeto receptor.

Rect.move_ip(x, y): return None

Similar al método move, pero opera afectando al objeto receptor.

inflate

Aumenta o disminuye el tamaño del rectángulo.

Rect.inflate(x, y): return Rect

Retorna un nuevo rectángulo con el tamaño alterado en la cantidad indicada. El rectángulo se mantiene centrado en el mismo punto. Los valores negativos reducen el tamaño del rectángulo.

inflate_ip

Aumenta o disminuye el tamaño del rectángulo afectando al objeto receptor.

Rect.inflate_ip(x, y): return None

Similar al método inflate, pero modifica al objeto receptor.

clamp

Mueve el rectángulo dentro e otro.

Rect.clamp(Rect): return Rect

Retorna una nuevo rectángulo desplazado para estar completamente dentro de otro rectángulo dado como parámetro. Si el rectángulo es demasiado grande para caber dentro del otro rectángulo, se posicionará en el mismo centro que el rectángulo del argumento, pero su tamaño no se cambiará.

clamp_ip

Mueve el rectángulo dentro e otro.

Rect.clamp_ip(Rect): return None

Similar al método clamp, pero afecta al objeto receptor.

clip

Recorta un rectángulo dentro de otro.

Rect.clip(Rect): return Rect

Retorna un nuevo rectángulo que se recorta para estar completamente dentro de otro indicado por parámetro. Si los dos rectángulos no están en colisión, se retornará un rectángulo de tamaño 0.

union

Une dos rectángulo para convertirse en uno.

Rect.union(Rect): return Rect

Retorna un nuevo rectángulo que cubre completamente el área de otros dos rectángulos dados como parámetro. Pueden haber áreas dentro del nuevo rectángulo que no estén en el área de los originales.

union_ip

Une dos rectángulo para convertirse en uno, afectando al objeto receptor.

Rect.union_ip(Rect): return None

Similar al método union, pero que afecta al rectángulo receptor.

unionall

La unión de varios rectángulos.

Rect.unionall(Rect_sequence): return Rect

Retorna la unión de un rectángulo con una secuencia de varios rectángulos.

unionall_ip

La unión de varios rectángulos, afectando al objeto receptor.

Rect.unionall_ip(Rect_sequence): return None

Similar al método unionall, pero afectando al objeto receptor.

fit

Cambia el tamaño o mueve el rectángulo pero respetando su aspecto.

Rect.fit(Rect): return Rect

Retorna un nuevo rectángulo desplazado y redimensionado para caber dentro de otro. Se preserva la proporción de aspecto del rectángulo original, por lo tanto el nuevo rectángulo puede ser mas pequeño que el ancho o alto del rectángulo final.

normalize

Corrige los tamaños negativos.

Rect.normalize(): return None

Invertirá el ancho o alto de un rectángulo si tiene algún tamaño negativo. El rectángulo conservará la misma posición, pero con los lados alternados.

contains

Consulta si un rectángulo está dentro de otro.

Rect.contains(Rect): return bool

Retorna True cuando el argumento está completamente dentro del objeto receptor.

collidepoint

Consulta si un punto está dentro de un rectángulo.

Rect.collidepoint(x, y): return bool
Rect.collidepoint( (x,y) ): return bool

Retorna True si el punto dado está dentro del rectángulo. Un punto sobre el costado derecho o inferior del rectángulo no se considera que está dentro del rectángulo.

colliderect

Consulta si dos rectángulos están en contacto

Rect.colliderect(Rect): return bool

Retorna True si cualquier parte de alguno de los rectángulos están en contacto (excepto los bordes superior+inferior o derecha+izquierda)

collidelist

Consulta si un rectángulo entra en contacto con una lista.

Rect.collidelist(list): return index

Consulta si el rectángulo colisiona con otro de una secuencia de rectángulos. Se retorna el índice de la primer colisión que se encuentra. Se retorna el índice -1 si no se encuentran colisiones.

collidelistall

Consulta si todos los rectángulos en una lista entran en contacto.

Rect.collidelistall(list): return indices

Retorna una lista de todos los índices que contienen rectángulos que colisionan con el rectángulo. Se retorna una lista vacía si no se encuentran rectángulos en colisión.

collidedict

Consulta si un rectángulo en un diccionario entra en contacto con el rectángulo.

Rect.collidedict(dict): return (key, value)

Retorna la clave y el valor del primer elemento de diccionario que colisiona con el rectángulo. Se retorna None si no se encuentran colisiones.

Los objetos Rect no se pueden usar como clave en los diccionarios, solamente se pueden utilizar como valores.

collidedictall

Consulta si todos los rectángulos en un diccionario entran en contacto.

Rect.collidedictall(dict): return [(key, value), ...]

Retorna una lista de todos los parece de clave y valor que colisionan con un rectángulo. Se retorna un diccionario vacío si no se encuentran colisiones.

Los objetos Rect no se pueden usar como clave en los diccionarios, solamente se pueden utilizar como valores.

 
traducciones/pygame/rect.txt · Última modificación: 20/01/2009 a las 17:24 (editor externo)
Este sitio funciona sobre el motor wiki de DokuWiki.
© 2003-2008 Hugo Ruscitti