예제 #1
0
 def printLabel(self):
     # Pixeles impresos en el Board que representan la letra S
     self.__pixels[10:20,880+self.generalOffset:920+self.generalOffset, :] = np.zeros((10,40,3), dtype="uint8")
     self.__pixels[10:30,880+self.generalOffset:890+self.generalOffset, :] = np.zeros((20,10,3), dtype="uint8")
     self.__pixels[30:40,880+self.generalOffset:920+self.generalOffset, :] = np.zeros((10,40,3), dtype="uint8")
     self.__pixels[40:60,910+self.generalOffset:920+self.generalOffset, :] = np.zeros((20,10,3), dtype="uint8")
     self.__pixels[50:60,880+self.generalOffset:920+self.generalOffset, :] = np.zeros((10,40,3), dtype="uint8")
     # Pixeles impresos en el Board que representan la letra C
     self.__pixels[10:20,930+self.generalOffset:970+self.generalOffset, :] = np.zeros((10,40,3), dtype="uint8")
     self.__pixels[10:60,930+self.generalOffset:940+self.generalOffset, :] = np.zeros((50,10,3), dtype="uint8")
     self.__pixels[50:60,930+self.generalOffset:970+self.generalOffset, :] = np.zeros((10,40,3), dtype="uint8")
     # Pixeles impresos en el Board que representan la letra O
     self.__pixels[10:20,980+self.generalOffset:1020+self.generalOffset, :] = np.zeros((10,40,3), dtype="uint8")
     self.__pixels[10:60,980+self.generalOffset:990+self.generalOffset, :] = np.zeros((50,10,3), dtype="uint8")
     self.__pixels[50:60,980+self.generalOffset:1020+self.generalOffset, :] = np.zeros((10,40,3), dtype="uint8")
     self.__pixels[10:60,1010+self.generalOffset:1020+self.generalOffset, :] = np.zeros((50,10,3), dtype="uint8")
     # Pixeles impresos en el Board que representan la letra R
     self.__pixels[10:20,1030+self.generalOffset:1070+self.generalOffset, :] = np.zeros((10,40,3), dtype="uint8")
     self.__pixels[10:60,1030+self.generalOffset:1040+self.generalOffset, :] = np.zeros((50,10,3), dtype="uint8")
     self.__pixels[30:40,1030+self.generalOffset:1070+self.generalOffset, :] = np.zeros((10,40,3), dtype="uint8")
     self.__pixels[10:40,1060+self.generalOffset:1070+self.generalOffset, :] = np.zeros((30,10,3), dtype="uint8")
     self.__pixels[40:60,1050+self.generalOffset:1060+self.generalOffset, :] = np.zeros((20,10,3), dtype="uint8")
     # Pixeles impresos en el Board que representan la letra E
     self.__pixels[10:20,1080+self.generalOffset:1120+self.generalOffset, :] = np.zeros((10,40,3), dtype="uint8")
     self.__pixels[10:60,1080+self.generalOffset:1090+self.generalOffset, :] = np.zeros((50,10,3), dtype="uint8")
     self.__pixels[30:40,1080+self.generalOffset:1120+self.generalOffset, :] = np.zeros((10,40,3), dtype="uint8")
     self.__pixels[50:60,1080+self.generalOffset:1120+self.generalOffset, :] = np.zeros((10,40,3), dtype="uint8")
     # Pixeles impresos en el Board que representan el simbolo :
     self.__pixels[20:30,1130+self.generalOffset:1140+self.generalOffset, :] = np.zeros((10,10,3), dtype="uint8")
     self.__pixels[40:50,1130+self.generalOffset:1140+self.generalOffset, :] = np.zeros((10,10,3), dtype="uint8")
     
     # Pixeles impresos en el Board que representan el simbolo :
     self.__pixels[730:740,0:1350, :] = np.zeros((10,1350,3), dtype="uint8")
 
     # Panel inicial con los colores que indican la dirección para obtener puntos
     obj = Object(1000,1080,100,140,Color.getBlue(10,10),"BLUE")
     obj.genMatrix()
     obj2 = Object(1000,1080,100,140,Color.getGreen(10,10),"GREEN")
     obj2.genMatrix()
     obj3 = Object(1000,1040,100,200,Color.getRed(10,10),"RED")
     obj3.genMatrix()
     self.__pixels[150:230, 1050:1090, :] = obj.matrix
     self.__pixels[150:230, 1250:1290, :] = obj2.matrix
     self.__pixels[100:140, 1120:1220, :] = obj3.matrix
예제 #2
0
 def startGame(self):
     # Inicialización de arreglo de objetos
     data = []
     # Creación de evento para control de la generación de objetos
     event = Event()
     # Definición de proceso en segundo plano para conteo de tiempo
     processObjects = Process(target=self.newObject,
                              args=(event, ),
                              name="Creating process")
     # Inicio de proceso
     processObjects.start()
     # While infinito que da inicio al juego
     while True:
         # Verifica el estado del juego mediante la lectura de la cámara
         self.moveControls()
         # Si hay un evento identificado, se crea un nuevo objeto
         if event.is_set():
             event.clear()
             element = np.random.randint(3)
             if element == 0:
                 obj = Object(270, 310, 0, 40,
                              Color.getBlue(self.pixelSize, self.pixelSize),
                              "BLUE")
             elif element == 1:
                 obj = Object(
                     580, 620, 0, 40,
                     Color.getGreen(self.pixelSize, self.pixelSize),
                     "GREEN")
             else:
                 obj = Object(890, 930, 0, 40,
                              Color.getRed(self.pixelSize, self.pixelSize),
                              "RED")
             # Creación del objeto
             obj.genMatrix()
             # Adición al arreglo general (lista)
             data.append(obj)
         # Copia de la matriz referencia
         matrix = np.copy(self.board.pixels)
         if len(data) > 0:
             # Impresión de objetos en la pantalla
             for num, printableObject in enumerate(data):
                 # Trae coordenadas del objeto
                 initialX, finalX, initialY, finalY, color, name = printableObject.position(
                 )
                 # Obtiene matriz de posición
                 matrix[initialY:finalY,
                        initialX:finalX, :] = printableObject.matrix
                 # Desplaza objeto
                 printableObject.move()
                 # Revisa si el objeto esta en la franja para puntuar y es interceptado por el estado correspondiente de juego
                 if (finalY + 1 > 740 and finalY + 1 < 780
                         and self.check(name)):
                     # Si es interceptado suma un punto
                     self.score += 1
                     # Verifica si el usuario gano y termina el juego con la pantalla de ganador
                     if self.score == 20:
                         processObjects.terminate()
                         self.cam.release()
                         cv2.destroyAllWindows()
                         im = cv2.imread("winner.png")
                         cv2.imshow("WINNER", im)
                         if cv2.waitKey(0):
                             self.mixer.music.stop()
                             cv2.destroyAllWindows()
                             self.cam.release()
                             exit()
                     data.pop(num)
                 # Verifica si el usuario no logro atinar al cuadro y le suma un punto negativo
                 if (finalY + 1 > 780):
                     self.__negativePoint += 1
                     # Elimina el objeto en la parte inferior de la pantalla
                     data.pop(num)
                     # Si el usuario suma 5 puntos negativos pierde
                     if (self.__negativePoint == 5):
                         processObjects.terminate()
                         cv2.destroyAllWindows()
                         im = cv2.imread("loser.jpg")
                         cv2.imshow("PERDISTE", im)
                         if cv2.waitKey(0):
                             self.mixer.music.stop()
                             cv2.destroyAllWindows()
                             self.cam.release()
                             exit()
         # Tecla para salirse del juego
         if cv2.waitKey(33) == ord('q'):
             self.mixer.music.stop()
             processObjects.terminate()
             break
         matrix = self.board.printScore(matrix, self.score)
         cv2.imshow(self.__boardName, matrix)
     self.cam.release()
     cv2.destroyAllWindows()