En esta ocasión vamos a simular un disparo de flechas, para lo que definimos dos clases: un arco que se desplazará con las coordenadas de ratón y una flecha que restará 5 al valor de y.
import pygame
import sys, random
pygame.init()
class Arco(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
self.image = pygame.image.load("E:/NUEVO 2020/PYTHON/pygame/Anima2/arco250.png").convert_alpha()
self.rect=self.image.get_rect()
def update(self):
x,y=pygame.mouse.get_pos()
nave.rect.x=x
nave.rect.y=500
class Flecha(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
self.image = pygame.image.load("E:/NUEVO 2020/PYTHON/pygame/Anima2/flecha150.png").convert_alpha()
self.rect=self.image.get_rect()
def update(self):
self.rect.y -= 5
Asignamos valores a variables y creamos una lista de sprite
ancho = 1080
alto = 700
vel=0
flechaLista=pygame.sprite.Group()
Definimos la ventana, el fondo y abrimos el bucle.
#----------------Ventana y título---------------------
ventana = pygame.display.set_mode((ancho,alto))
pygame.display.set_caption('Arco y flechas')
clock=pygame.time.Clock()
pygame.mouse.set_visible(1) #Oculto el puntero en 0
fondo =pygame.image.load("E:/NUEVO 2020/PYTHON/pygame/Fondo/bosque.png").convert()
arco=Arco()
#/////////////////Bucle del juego/////////////////
gameOver=False
while not gameOver:
clock.tick(60)
for event in pygame.event.get():
if event.type == pygame.QUIT:
gameOver=True
Asignamos posición de la flecha en relación a coordenadas del puntero.
if event.type == pygame.MOUSEBUTTONDOWN: # Asigno x,y a la clase Laser al hacer clic (y -= 5)
flecha=Flecha()
flecha.rect.x=x+85
flecha.rect.y=600-90
flechaLista.add(flecha)
Cargamos los datos de la flecha para que reste -5 llamando a la clase.
#------------ LOGICA -------------------
flechaLista.update()
Dibujamos el fondo, los objetos y cerramos
#-------------FONDO---------------------
ventana.blit(fondo, [0,0])
#------------ DIBUJO ------------------
x,y=pygame.mouse.get_pos()
ventana.blit(arco.image, [x,500])
flechaLista.draw(ventana)
pygame.display.flip()
pygame.quit()
Juande Marín
Profesor de Marketing digital, divulgador de inteligencia artificial y neuroeducación. Especializado en posicionamiento en buscadores y diseño web. Autor de varios libros relacionados con el comercio electrónico y el marketing digital (McGraw Hill, Paraninfo,…) Juande2marin







