Bir görüntünün görüntüsü ve rektumu birbirinin üstünde değildir, kaydırılırlar. sorun ne

0

Soru

Görüntüyü ve görüntüyü çizdiğimde, dikdörtgenin sol üst köşesi tam olarak görüntünün ortasındadır.

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

En iyi cevabı

1

Sadece geri dön new_rect -den blitRotateCenter ve dikdörtgeni çizmek için kullanın:

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)

Ancak, döndürülmüş bir dikdörtgen çizmek istiyorsanız, bkz.

2021-11-23 05:24:46

Ancak çarpışma algılandığında new_auto_rect kullanamıyorum.Ne yapabilirim?
Joachim

Neden çarpışma tespiti için kullanamıyorsun?
Rabbid76

Neden çarpışma tespiti için kullanamıyorsun? Saklayabilirsiniz new_auto_rect içinde self.rect. self.rect = new_auto_rect. Yoksa maskelerle PyGame çarpışmasını mı arıyorsunuz?
Rabbid76

ben otomatik olarak ayarlayın.rect = new_auto_rect. Ama görüntü ekranın üzerinden geçiyor. Sanırım ortalamam gerekiyor? Nereye? eğer işe yararsa hits = pygame kullanmak istiyorum . hareketli.spritecollide( otomatik, kara, Yanlış, pygame.hareketli.collide_mask)
Joachim

@Joachim Hayır, onu merkezlemenize gerek yok. Ortalanmış. Ekranda bir dikdörtgen çizmek için kullanılır. Kodunda bir şeyler ters gitti. Yeni bir soru sormanızı öneririm.
Rabbid76

Diğer dillerde

Bu sayfa diğer dillerde

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