En la mayoría de juegos los personajes tienen que esquivar o saltar obstáculos para seguir la aventura, vamos a mostrar como hacerlo con dos cuadrados que luego podemos convertir en personajes.

Comenzamos por importar librería y asignar valores iniciales a variables que luego utilizaremos.

import pygame
pygame.init()

negro=pygame.Color('black')
rojo=pygame.Color('red')
blanco=pygame.Color('white')
gris=pygame.Color('gray')
colorFondo=blanco
width = 900 
height = 700
vel=0
salto=10
isJump=False
x=200
y=480

Definimos la ventana y abrimos el bucle del juego.

#----------------Ventana y título---------------------
ventana = pygame.display.set_mode((width,height)) 
pygame.display.set_caption('Ladrillo')
clock=pygame.time.Clock()

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

Con el teclado asignamos valores para desplazar las coordenadas a izquierda y derecha.

#----------- Teclas derecha izquierda ---------------  
    if event.type == pygame.KEYDOWN:
        if event.key ==pygame.K_LEFT: #Si es menor no voy a despalzar
            vel = -7

        if event.key == pygame.K_RIGHT: #Llega hasta el ancho menos el ancho del personaje
            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: #Si es menor no voy a despalzar
            vel = 0

        if event.key == pygame.K_RIGHT: #Llega hasta el ancho menos el ancho del personaje
            vel = 0  

Definimos, a continuación el salto.

    if isJump: # Si está en salto/////////////////////////////////
        
        if salto>= -20:  #Caida hasta -20
            y -= (salto * abs(salto)) *0.5     #La variable va reduciendo hasta llegar arriba 10 y luego inverso hasta -20
            salto-=1                         #Decrementamos el valor de salto para obtener valores de y
            if movil.colliderect(suelo):     #Si colisiona con suelo reseteamos valor salto para volver a saltar
                salto=10
                isJump=False
            
        else:
            salto = 10 #Reseteamos la variable para próximos saltos
            isJump=False #Salgo del ciclo 

La variable isJump es TRUE cuando pulsamos la tecla SPACE, entonces dibujamos una parábola que termina si colisionamos con el cuadrado suelo o cuando la variable salto llega a -20. En los dos casos reseteamos salto y ponemos isJump en FALSE para que pueda volver a saltar.

En la parte lógica cambiamos coordenadas de x con la acción del teclado y limitamos el campo de acción por la ventana.

    #------------ LOGICA -------------------
    x += vel #Coordenadas x añaden velocidad "vel"

    if y>480:
        y=480
        
    if x<40:
        x=40
    if x>800:
        x=800

Dibujamos el fondo y los cuadrados.

    #-------------FONDO---------------------
    ventana.fill(colorFondo) #Fondo color
    
    #------------ DIBUJO ------------------
    suelo=pygame.draw.rect(ventana, gris,(410,480,60,20))
    ladrillo=pygame.draw.rect(ventana, negro,(400,500,80,60))
    movil=pygame.draw.rect(ventana, rojo,(x,y,80,80))

Ahora vamos a configurar las colisiones. Si el cuadrado móvil colisiona con el cuadrado ladrillo impedimos que siga desplazándose y dejamos isJump en false para que pueda volver a saltar.

    # //////////Colisión si viene de salto resetea valores y sale de bucle//////////////
    if movil.colliderect(ladrillo):
        if isJump:
            y-=20
            salto=10
            isJump=False
        
        # /////////////////Colisión lateral sin salto ////////////////
        if vel==7 and isJump==False:
            x=x-7
        elif vel==-7 and isJump==False:
            x=x+7

Por último si el cuadrado móvil no está en colisión con cuadrado suelo y no está en salto, entonces añadimos a la coordenada y+=10 para que caiga 10.

    # Si no está en colisión con suelo y No salto cae 10        
    if not movil.colliderect(suelo) and isJump==False:
        y+=10
    
    pygame.display.flip()
    clock.tick(20)
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

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