Ya hemos visto como colisionar dos objetos/cuadrados en nuestro artículo: colisión entre dos cuadrados.

Ahora vamos a colisionar un objeto con una lista de objetos, y del producto de la colisión desaparecerá uno de ellos.

Para empezar definimos los dos objetos:

import pygame, sys, random
pygame.init()

class Girl(pygame.sprite.Sprite):
    def __init__(self):
        super().__init__()
        self.image = pygame.image.load("E:/NUEVO 2020/PYTHON/pygame/girl.png").convert_alpha()
        self.rect=self.image.get_rect()
        
class Pera(pygame.sprite.Sprite):
    def __init__(self):
        super().__init__()
        self.image = pygame.image.load("E:/NUEVO 2020/PYTHON/pygame/pera2.png").convert_alpha()
        self.rect=self.image.get_rect()

Asignamos valores a las variables y definimos la ventana

ancho=800
alto=700
x=50
y=490
vel=0
salto=10
isJump=False
        
#Ventana y título
ventana = pygame.display.set_mode((ancho,alto)) 
pygame.display.set_caption('Saltando')
clock=pygame.time.Clock()

Cargamos el objeto Girl en la lista y guardamos el fondo en una variable.

#------------Listas--------------
frutaLista=pygame.sprite.Group() 
fondo =pygame.image.load("E:/NUEVO 2020/PYTHON/pygame/fondonubes.png").convert()
girl=Girl()

Mediante un bucle damos valores de x e y al objeto Pera que guardamos en una lista «frutaLista»

h=100
for i in range(3):
    pera=Pera()
    pera.rect.x=h
    pera.rect.y=300
    frutaLista.add(pera)
    h+=250

Ahora cargamos los sonidos de fondo y colisión.

soundColision = pygame.mixer.Sound("E:/NUEVO 2020/PYTHON/pygame/sonidoPG/tesoro.wav")
soundBg = pygame.mixer.music.load("E:/NUEVO 2020/PYTHON/pygame/main.mid")
pygame.mixer.music.play()

Damos movilidad a los objetos definiendo eventos de teclado

#/////////////////Bucle del juego/////////////////
gameOver=False
while not gameOver:
    
    for event in pygame.event.get():

        if event.type == pygame.QUIT:
            gameOver=True
            
    #----------- pulsar teclas y soltar tecla       
    
    if event.type == pygame.KEYDOWN: 
        if event.key == pygame.K_LEFT:
            vel=-7
        if event.key == pygame.K_RIGHT:
            vel=7
        #Si no está en salto /////////////////
        if event.key==pygame.K_SPACE:
            isJump=True

    if event.type == pygame.KEYUP:
        if event.key == pygame.K_LEFT:
            vel=0
        if event.key == pygame.K_RIGHT:
            vel=0

    if isJump:
        if salto>=-10:
            y-=(salto*abs(salto))*0.5
            salto-=1
        else:
            salto=10
            isJump=False

Damos valores x e y al objeto girl, llamando a la clase con los parámetros definidos con el teclado.

    #------------ LOGICA -------------------
    x += vel
    girl.rect.x=x
    girl.rect.y=y

Para colisionar el objeto girl con la lista frutaLista utilizamod un spritecollide que borra el objeto de la lista si lo marcamos como True.

Cuando colisiona reproducimos el sonido.

    #----------- COLISION --------------------
    if pygame.sprite.spritecollide(girl, frutaLista, True):
        soundColision.play()

Ahora dibujamos el fondo, la lista y el objeto.

    #-------------FONDO---------------------
    ventana.blit(fondo, [0,0])
      
    #------------ DIBUJO ------------------
    frutaLista.draw(ventana)
    ventana.blit(girl.image, [x,y])

    pygame.display.flip()
    clock.tick(18)
pygame.quit()

Puedes ver todo el código en el vídeo.

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

ComercioyMarketing

¿Quién me pone el ROL de profesor?

El profesor o profesora debe seguir el mismo proceso de automatriculación del alumnado, y una vez completado el proceso debe solicitar que el gestor del campus le cambie el rol para que pueda acceder al contenido exclusivo del profesor. No se hace de forma automatizada para evitar filtraciones. Puede solicitar el cambio de ROL al mail: infor@comercioymarketing.es

¿Cómo doy de alta al alumnado?

Cada alumno puede darse de alta accediendo al Instituto y al módulo desde el el CAMPUS.comercioymarketing.es Durante el proceso tendrá que rellenar un formulario y al finalizar deberá introducir la clave de matriculación que se facilitará al profesor a través de correo electrónico: info@comercioymarketing.es

Presentación del campus.

¿Puedo descargar el ebook?

Todo el material está protegido por los derechos de autor y la Ley de Propiedad Intelectual. No se puede descargar ni difundir total o parcialmente. No obstante si algún alumno desea el material en formato papel podrá adquirirlo en la editorial LULU.com

Para localizar los libros se puede hacer una búsqueda en la propia web por título o autor: Juan de Dios Marín Peñas. Los libros en papel suelen estar promocionados para el alumnado matriculado (75% de descuento).

¿Se adapta a normativa?

Todo el material didáctico está adaptado al Real Decreto del Ciclo Formativo y responde a los Resultados de Aprendizaje que se deben alcanzar.

Para facilitar la evaluación se facilita un cuadro de actividades y su relación con los criterios de evaluación y RA.

¿Cómo se paga?

Los alumnos y alumnas pueden pagar directamente ingresando o transfiriendo el importe de la matrícula a la cuenta facilitada por el gestor del campus (info@comercioymarketing.es).

Para facilitar la identificación de los pagos se aconseja que se hagan de forma agrupada por clase y se identifique el Instituto cuando se haga el ingreso.

 

¿Cuánto cuesta?

El coste es de 7€ al año por cada uno de los módulos que contrate el alumno. El profesor y el Instituto no pagan nada. Estos 7€ da derecho a 9 meses de matriculación con acceso al material didáctico, vídeos, actividades, hosting, etc.


¿Quieres un material didáctico adaptado y actualizado?

Si estás buscando herramientas didácticas adaptadas a las nuevas tecnologías, si quieres utilizar la inteligencia artificial de forma didáctica aportando valor y quieres dinamizar tus clases; nuestra plataforma didáctica interactiva es la solución. Facilitamos material didáctico actualizado, dinámico, interactivo, práctico, editable y motivador.

Contactanos

Categorías