Vamos a rotar una imagen manejando el ratón, y para ello comenzamos definiendo la ventana y cargando las dos imágenes (fondo y arco).
import pygame
import sys
pygame.init()
ancho = 1080
alto = 700
#----------------Ventana y título---------------------
ventana = pygame.display.set_mode((ancho,alto))
pygame.display.set_caption('Arco')
clock=pygame.time.Clock()
posArco = 660,600
pygame.mouse.set_visible(0) #Oculto el puntero en 0
fondo =pygame.image.load("E:/NUEVO 2020/PYTHON/pygame/Fondo/bosque.png").convert()
arco =pygame.image.load("E:/NUEVO 2020/PYTHON/pygame/Anima2/arco180.png").convert_alpha()
#/////////////////Bucle del juego/////////////////
gameOver=False
while not gameOver:
clock.tick(27)
pygame.time.delay(20)
for event in pygame.event.get():
if event.type == pygame.QUIT:
gameOver=True
Asignamos a la variable X e Y los valores del puntero del ratón. Esa posición del ratón la dividimos entre 6 y calculamos el ángulo a 180 grados.
#---------- – LOGICA – -----------------
x,y = pygame.mouse.get_pos()
x=x/6
angulo=180-x
A continuación rotamos el arco el valor de «angulo»
img=pygame.transform.rotate(arco, angulo)
Convertimos la imagen a rectángulo y centramos el rectángulo en la posición del arco.
img_rect=img.get_rect() #Imagen a rectángulo
img_rect.center=posArco #Centro del rectángulo a posición arco
Dibujamos el fondo, el arco y cerramos.
#-------------FONDO---------------------
ventana.blit(fondo, [0,0])
#---------- – DIBUJO – ----------------
ventana.blit(img, img_rect)
pygame.display.flip()
pygame.quit()