def rot_img(sprite): angle = gravity.get_angle(sprite.physics) if angle: if hasattr(sprite,"down") and sprite.down==-1: angle+=180 if hasattr(sprite,"direction") and sprite.direction==1: img = pygame.transform.flip(sprite.image_orig,True,False) sprite.image=pygame.transform.rotate(img,angle) else: sprite.image=pygame.transform.rotate(sprite.image_orig,angle) sprite.mask=pygame.mask.from_surface(sprite.image) center=sprite.rect.center sprite.rect=sprite.image.get_rect() sprite.rect.center=center
for sprite in layeredgroup.sprites(): rot_img(sprite) sprite.rect.center=sprite.physics.pos for sprite in layeredgroup.sprites(): if not sprite.physics.rest: sprite.dirty=1 layeredgroup.draw(world,background) screen.blit(world,(0,0)) hud.fill((0,0,0,0)) if mode == "shoot": s = (4 + shoot_time / 3) * 10 surf=pygame.transform.scale(aim_png,(s,min(32,s))) angle=gravity.get_angle(currentplayer.physics) if currentplayer.direction == 0: ov = pygame.transform.rotate(surf,180-shoot_angle+angle) r = ov.get_rect() r.center = currentplayer.rect.center hud.blit(ov,r.topleft) else: ov = pygame.transform.rotate(surf,shoot_angle+angle) r = ov.get_rect() r.center = currentplayer.rect.center hud.blit(ov,r.topleft) weapon_hud=weapon if currentplayer.ammo[weapon] > 0: weapon_hud += " x"+str(currentplayer.ammo[weapon]) ren = font2.render(weapon_hud,1,(255,255,255)) hud.blit(ren,(10,30))