Juego de disparos

Vamos a explicar todos los pasos para crear un nuevo vídeo-juego:

#! /usr/bin/env python
# -*- coding: utf-8 -*-

import pilasengine #Importación de todo el modulo de pilasengine y sus componentes
import random  #Importación del modulo para poder realizar acciones aleatorias (podemos colocarlo en el final también)
pilas = pilasengine.iniciar() #Inicio del programa pilasengine


# Variables y Constantes
balas_simples = pilasengine.actores.Bala  #Instrucción para indicar el tipo de bala que se quiere
Ovni = [] #Lista vacía del actor del grupo de los enemigos
tiempo=6  #Iniciar la variable tiempo
fin_de_juego=False #Indicación de la variable fin de juego en modo false 

#Definiciones#
def Ovni_destruido(disparo, enemigo): #Función de la variable para destruir el ovni 
   # Eliminar la nave alcanzada
    enemigo.eliminar()
    disparo.eliminar()
    # Actualizar el marcador con un efecto bonito
    puntos.escala = 0
    puntos.escala = pilas.utils.interpolar(puntos, 'escala', 2, duracion=0.5)
    #Instrucción para cambiar el temaño del marcador de una escala 0 a una de 2 cada vez 
    que se gane un punto y esto ocurre cada 0.5 segundos.
    puntos.aumentar(1)


def crear_Ovni(): #Función para crear el enemigo
    enemigo = pilas.actores.Ovni() #Indicación para usar el actor ovni como enemigo
    enemigo.escala = 0 
    enemigo.escala =pilas.utils.interpolar(enemigo, 'escala', 1.5, duracion=5)
    #Instrucción para cambiar el tamaño del actor de una escala 0 a 1.5 en una duración de 5                 segundos
    enemigo.aprender(pilas.habilidades.PuedeExplotar) #Habilidad que se le da al actor para                    explotar

    x = random.randrange(-320, 320)
    y = random.randrange(-240, 240)

    if x >= 0 and x <= 100:
        x = 180
    elif x <= 0 and x >= -100:
        x = -180                             #Instrucción que se le da a las coordenadas "x" y "y" para que el 
    if y >= 0 and y <= 100:          actor aparezca según el valor que se le indique (por ejemplo: si se 
        y = 180                                      le marca que llega a aparecer en el eje de las "x" siendo mayor a  
    elif y <= 0 and y >= -100:   0 y menor a 100, tenga que aparecer en la coordenada 180).
        y = -180
    enemigo.x = x
    enemigo.y = y
    a=random.randrange(-320, 320)
    b=random.randrange(-600, 600)
    enemigo.x = [a, b], 1
    enemigo.y = [b, a], 1
    Ovni.append(enemigo)            #Instrucción para que aparezca el actor (enemigo)
    if fin_de_juego:
        return False                              #Indicación para marcar el fin de juego
    else:
        return True

def perder(torreta, enemigo):  #Función para la acción de perder
    # Indicar fin de juego y eliminar lo que ya no se necesita
    global fin_de_juego
    torreta.eliminar()
    pilas.tareas.eliminar_todas()
    fin_de_juego = True #Indicación de que se ha llegado al fin de juego
    pilas.avisar("Has perdido. =( Conseguiste %d puntos" % (puntos.obtener()))
    #Instrucción que indica cuantos puntos has conseguido al ser eliminado

#Programa principal
fondo = pilas.fondos.Fondo()  #Indicación para crear un fondo a través de una imagen descargada
fondo.imagen = pilas.imagenes.cargar('espacio.jpg') 
puntos = pilas.actores.Puntaje(x=-250, y=200, color=pilas.colores.rosa) #Instrucción que indica en que posición esta el marcador y su color
puntos.magnitud = 40 #Instrucción para cambiar el tamaño de los puntos del marcador
pilas.actores.Sonido() #Indicación para usar el modulo sonido 
pilas.ejecutar()
# Añadir la torreta del jugador
torreta = pilas.actores.Torreta(municion_bala_simple=balas_simples, #Parametros que tiene la                               enemigos=Ovni,                                                                                torreta (balas, enemigos al 
                    cuando_elimina_enemigo=Ovni_destruido)                     que disparar y su eliminación)

pilas.tareas.agregar(1, crear_Ovni)       #Instrucción para activar la función crear_ovni cada 1 segundo y por tanto, se crea un enemigo cada 1 segundo
pilas.colisiones.agregar(torreta, Ovni, perder)  #Instrucción que define las 3 funciones principales

Comentarios