Imagen y rect de una imagen no están en la parte superior de uno al otro, que se desplaza. lo que está mal

0

Pregunta

Cuando me dibujar la imagen y el rect Wof las imágenes, luego la esquina superior izquierda del rectángulo es exactamente en el centro de la imagen.

def blitRotateCenter(image, left, top, angle):
    rotated_image = pygame.transform.rotate(image, angle)
    new_rect = rotated_image.get_rect(center = image.get_rect(center = (left, top)).center)
    screen.blit(rotated_image, new_rect)
self.image = pygame.image.load("Bilder/car.png")   
self.rect = self.image.get_rect()
    
blitRotateCenter(auto.image, auto.rect.x, auto.rect.y, auto.wagen_winkel)
draw.rect(screen,red,auto.rect)
pygame python
2021-11-22 07:36:57
1

Mejor respuesta

1

Acabo de volver de new_rect de blitRotateCenter y utilizarlo para dibujar el rectángulo:

def blitRotateCenter(image, left, top, angle):
    rotated_image = pygame.transform.rotate(image, angle)
    new_rect = rotated_image.get_rect(center = image.get_rect(center = (left, top)).center)
    screen.blit(rotated_image, new_rect)
    return new_rect
new_auto_rect = blitRotateCenter(auto.image, auto.rect.x, auto.rect.y, auto.wagen_winkel)
draw.rect(screen,red, new_auto_rect)

Sin embargo, si usted desea dibujar un rectángulo girado, ver Llegar girado rect de imagen girada en Pygame.

2021-11-23 05:24:46

Pero no puedo utilizar la new_auto_rect por colisión detectada.¿Qué puedo manejarlo?
Joachim

Por qué no se pueden utilizar para la detección de colisiones?
Rabbid76

Por qué no se pueden utilizar para la detección de colisiones? Usted puede almacenar new_auto_rect en self.rect. self.rect = new_auto_rect. O busca PyGame colisión con máscaras?
Rabbid76

yo automático.rect = new_auto_rect. Pero la imagen ejecuta a través de la pantalla. Creo que tengo hacia el centro? Donde? si funciona quiero usar hits = pygame.sprite.spritecollide( auto, la tierra, el Falso, pygame.sprite.collide_mask)
Joachim

@Joachim no, usted no necesita hacia el centro. Es centrado. Se utiliza para dibujar un rectángulo en la pantalla. Hay algo desordenado en su código. Que me sugieren para hacer una nueva pregunta.
Rabbid76

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................