Advertisement
Fhernd

Spaceinvader_1.py

Nov 24th, 2017
234
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.48 KB | None | 0 0
  1. import pygame, sys
  2. from pygame.locals import*
  3. import random
  4. import time
  5. import os
  6. import sys
  7.  
  8.  
  9. ANCHO = 1200
  10. ALTO = 600
  11. clock = pygame.time.Clock()
  12.  
  13. class naveespacial(pygame.sprite.Sprite):
  14.     """clase para las naves"""
  15.     #instancio una clase
  16.     def __init__(self):
  17.         # agregarle cosas a una clase
  18.         pygame.sprite.Sprite.__init__(self)
  19.         self.imagennave = pygame.image.load('nave.png')
  20.         self.rect = self.imagennave.get_rect()
  21.         self.rect.centerx = ANCHO/2
  22.         self.rect.centery = ALTO-22
  23.  
  24.         self.vidas = [1, 1, 1]
  25.         self.vida = True
  26.         self.velocidad = 15
  27.  
  28.         #self.sonidodisparo = pygame.mixer.Sound('shoot.wav')
  29.  
  30.     def disparar(self):
  31.         print ("---------disparo-------")
  32.         self.sonidodisparo.play()
  33.  
  34.     def dibujar(self, superficie):
  35.         superficie.blit(self.imagennave, self.rect)
  36.  
  37.     def movimiento(self):
  38.         if self.vida == True:
  39.             if self.rect.left <= 0:
  40.                 self.rect.left = 1200
  41.             elif self.rect.left >= 1200:
  42.                 self.rect.right = 0
  43.  
  44.     #def vidajugador (self):
  45.     #   if balainvasor == (posx and posy jugador)
  46.     #       self.vidas().delete.[0]
  47.  
  48.  
  49. def drawScore(score):
  50.     scoreSurf = BASICFONT.render('Score: %s' % (score), True, (255,255,255))
  51.     scoreRect = scoreSurf.get_rect()
  52.     scoreRect.topleft = (ANCHO - 140, 10)
  53.     ventana.blit(scoreSurf, scoreRect)
  54.  
  55. def CreaNaves():
  56.     naves = [[pygame.image.load('invasor.png') for i in range(1)] for i in range(1)]
  57.     return naves
  58.  
  59. #####################################################################
  60. #def CreaBoque():
  61. #   bloque = [[pygame.draw.rect(ventana, (50,100,90)), (bloquex,bloquey) for i in range(1)] for i in range(1)]
  62. #   return bloque
  63. #####################################################################
  64.  
  65. def CreaBloques():
  66.     for j in range (4):
  67.         for i in range (5):
  68.             pygame.draw.rect(ventana, (10,20,10), (int(150+(j*250)+(i*27)), 500, 25, 25))
  69.             for k in range (5):
  70.                 pygame.draw.rect(ventana, (50,100,20), (int(150+(j*250)+(k*27)), 473, 25, 25))
  71.                 for l in range (5):
  72.                     pygame.draw.rect(ventana, (50,100,0), (int(150+(j*250)+(l*27)), 446, 25, 25))
  73.  
  74. def spaceinvader():
  75.     global BASICFONT, ventana
  76.     pygame.init()
  77.     BASICFONT = pygame.font.Font('freesansbold.ttf', 25)
  78.     ventana = pygame.display.set_mode((ANCHO, ALTO))
  79.     pygame.display.set_caption("Space Invader")
  80.     fondo = pygame.image.load('espacio.png')
  81.  
  82.     #pygame.mixer.music.load('spaceinvaders1.mpeg')
  83.     #pygame.mixer.music.play(3)
  84.  
  85.     jugador = naveespacial()
  86.     #definir que esta vivo desde un comienzo
  87.  
  88.     CreaNaves()
  89.     #naves = [[pygame.image.load('invasor.png') for i in range(1)] for i in range(1)]
  90.  
  91.  
  92.     bala  = pygame.image.load('proyectil.png')
  93.     a = 0
  94.     navex = 20
  95.     navey = 50
  96.     posx = 500
  97.     posy = 610
  98.     bloquex = 100
  99.     bloquey = 550
  100.     parte = 0
  101.     direccion = 'derecha'
  102.     vivo = True
  103.  
  104.     while True:
  105.         # Score
  106.         drawScore(5)
  107.         #tiempo
  108.         clock.tick( 500 );
  109.         #Movimiento de la clase del jugador
  110.         jugador.movimiento()
  111.  
  112.         for evento in pygame.event.get():
  113.             if evento.type == QUIT:
  114.                 pygame.quit()
  115.                 sys.exit()
  116.  
  117.  
  118.         # Teclas oprimidas para movimiento del jugador y de la bala
  119.         if vivo == True:
  120.             keys = pygame.key.get_pressed()
  121.             pygame.display.update()
  122.  
  123.             if keys[K_LEFT]:
  124.                 jugador.rect.left = jugador.rect.left  - 9
  125.             #print (jugador.rect.left)
  126.             if keys[K_RIGHT]:
  127.                 jugador.rect.right = jugador.rect.right  + 9
  128.             #pygame.display.update()
  129.             if keys[K_s]:
  130.                 jugador.disparar()
  131.  
  132.             if keys[K_SPACE]:
  133.                 a = 1
  134.  
  135.         if posy <0:
  136.             a = 0
  137.             posy = 605
  138.  
  139.  
  140.         if a == 1 :
  141.    
  142.             posx = jugador.rect.left
  143.  
  144.             posy = posy - 10
  145.  
  146.  
  147.  
  148.         # movimiento de las naves enemigas
  149.         if direccion == 'derecha':
  150.             navex = navex + 10
  151.         else:
  152.             navex = navex - 10
  153.  
  154.         if navex > 680:
  155.             navey = navey + 5
  156.             direccion = 'izquierda'
  157.  
  158.         if navex < 50:
  159.             navey = navey + 5
  160.             direccion = 'derecha'
  161.  
  162.         ventana.blit(fondo, (0,0))
  163.         #v=[]
  164.         # ciclo de enemigos
  165.         for f in range(3):
  166.             #v.append([])
  167.             #print("--------------------------", list(v))
  168.             for c in range(8):
  169.                 ventana.blit(CreaNaves()[0][0], (c * 60 + navex, f * 60 + navey))
  170.                 #v[f].append(c * 60 + navex)
  171.                 #print(list(v))
  172.                 #pygame.display.update()
  173.  
  174.  
  175.         #v[0].pop(1)
  176.         #print ("------------------------", v)
  177.  
  178.  
  179.         ventana.blit (bala,(posx,posy))
  180.         CreaBloques()
  181.         jugador.dibujar(ventana)
  182.         pygame.display.update()
  183.  
  184. spaceinvader()
  185.  
  186.  
  187. navex = 10
  188. navey = 50
  189.  
  190.  
  191. ### while true
  192.  
  193.         ########navex = navex + 5
  194.  
  195.  
  196.         ###### for fila in rango de 5
  197.             ########for columna in rango de 8
  198.                 #######DISPLAYSURF.blit(naves[0][0]), (c*60 + navex, f*60+navey)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement