Esempio n. 1
0
 def setupUi(self, Pocmon):
     self.Pausa = PauseMenu()
     self.SaveAs = SaveAs()
     self.Pausa.conectar(self)
     Pocmon.setObjectName(_fromUtf8("Pocmon"))
     Pocmon.resize(680, 770)
     self.horizontalLayout_2 = QtGui.QHBoxLayout(Pocmon)
     p = self.palette()
     p.setColor(self.backgroundRole(), QtCore.Qt.darkRed)
     self.setPalette(p)
     self.retranslateUi(Pocmon)
     QtCore.QMetaObject.connectSlotsByName(Pocmon)
     self.setgraphics()
     self.barra = QtGui.QLabel(self)
     self.font = QtGui.QFont()
     self.font.setFamily(_fromUtf8("Fixedsys"))
     self.font.setPointSize(14)
     self.font.setBold(True)
     self.font.setWeight(75)
     self.barra.setFont(self.font)
     self.barra.resize(680, 30)
     self.record = str(EncontrarRecord())
     self.barra.setText('  Puntaje: {0:4s} Record: {1:4s} Vidas:{2:2s}  Tiempo Restante: {3:4s}'.format('0', self.record, '3',
                                                                                          '04:00'))
     self.barra.setStyleSheet('QLabel {background-color: #F6F285; color: #3366FF;}')
     self.start_threads()
     self.cont = 0
     self.c = 0
     time.process_time()
Esempio n. 2
0
class Ui_Pocmon(QtGui.QWidget):
    def __init__(self):
        QtGui.QWidget.__init__(self)
        self.setupUi(self)
        self.pausa = False

    def setupUi(self, Pocmon):
        self.Pausa = PauseMenu()
        self.SaveAs = SaveAs()
        self.Pausa.conectar(self)
        Pocmon.setObjectName(_fromUtf8("Pocmon"))
        Pocmon.resize(680, 770)
        self.horizontalLayout_2 = QtGui.QHBoxLayout(Pocmon)
        p = self.palette()
        p.setColor(self.backgroundRole(), QtCore.Qt.darkRed)
        self.setPalette(p)
        self.retranslateUi(Pocmon)
        QtCore.QMetaObject.connectSlotsByName(Pocmon)
        self.setgraphics()
        self.barra = QtGui.QLabel(self)
        self.font = QtGui.QFont()
        self.font.setFamily(_fromUtf8("Fixedsys"))
        self.font.setPointSize(14)
        self.font.setBold(True)
        self.font.setWeight(75)
        self.barra.setFont(self.font)
        self.barra.resize(680, 30)
        self.record = str(EncontrarRecord())
        self.barra.setText('  Puntaje: {0:4s} Record: {1:4s} Vidas:{2:2s}  Tiempo Restante: {3:4s}'.format('0', self.record, '3',
                                                                                             '04:00'))
        self.barra.setStyleSheet('QLabel {background-color: #F6F285; color: #3366FF;}')
        self.start_threads()
        self.cont = 0
        self.c = 0
        time.process_time()

    def retranslateUi(self, Pocmon):
        Pocmon.setWindowTitle(_translate("Pocmon", "Poc-Mon", None))

    def setgraphics(self):
        with open(os.getcwd() + '\Laberintos\maze1.txt', 'r') as archivo:
            self.map = archivo.readlines()
        self.mapa = []
        c = 0
        for i in range(len(self.map)):
            lis = []
            for j in range(len(self.map[0])):
                if self.map[i][j] != '0':
                    if j == len(self.map[0]) - 2 or j == 0:
                        if self.map[i][j] != '0':
                            lis.append('8')
                    else:
                        if self.map[i][j] == '5':
                            y = i
                            x = j
                            lis.append('5')
                        elif self.map[i][j] == '4':
                            y1 = i #Posiciones claves para que los fantasmas reingresen a la base
                            x1 = j
                            self.puerta = (x1,y1)
                            lis.append('1')
                        elif self.map[i][j] == '3':
                            y2 = i
                            x2 = j
                            lis.append('3')
                        elif self.map[i][j] == '6':
                            y3 = i
                            x3 = j
                            lis.append('6')
                        elif self.map[i][j] == '9':
                            y4 = i
                            x4 = j
                            lis.append('9')
                        else:
                            if c % 5 == 0:
                                r = random.random()
                                if r < 0.03:
                                    lis.append('7')
                                else:
                                    lis.append('2')
                            else:
                                lis.append('1')

                else:
                    lis.append('0')
                c += 1
            self.mapa.append(lis)
        self.picman = QtGui.QLabel(self)
        self.f1 = QtGui.QLabel(self)
        self.f2 = QtGui.QLabel(self)
        self.f3 = QtGui.QLabel(self)
        self.f4 = QtGui.QLabel(self)
        self.myPixmap = QtGui.QPixmap(os.getcwd() + "/Imágenes/pocmon.png")
        self.myPixmap2 = QtGui.QPixmap(os.getcwd() + "/Imágenes/pocmon2.png")
        self.myPixmapizq = QtGui.QPixmap(os.getcwd() + "/Imágenes/pocmonizq.png")
        self.myPixmap2izq = QtGui.QPixmap(os.getcwd() + "/Imágenes/pocmon2izq.png")
        self.pixf1 = QtGui.QPixmap(os.getcwd() + "/Imágenes/mrpatiwi.png")
        self.pixf2 = QtGui.QPixmap(os.getcwd() + "/Imágenes/jaimiwi.png")
        self.pixf3 = QtGui.QPixmap(os.getcwd() + "/Imágenes/marquiwi.png")
        self.pixf4 = QtGui.QPixmap(os.getcwd() + "/Imágenes/belenciwi.png")
        self.Blue = QtGui.QPixmap(os.getcwd() + "/Imágenes/Blue.png")
        self.Muerto = QtGui.QPixmap(os.getcwd() + "/Imágenes/Muerto.png")
        self.myScaledPixmap = self.myPixmap.scaled(self.picman.size(), QtCore.Qt.KeepAspectRatio)
        self.picman.setPixmap(self.myScaledPixmap)
        self.myScaledf1 = self.pixf1.scaled(self.f1.size(), QtCore.Qt.KeepAspectRatio)
        self.myScaledf2 = self.pixf2.scaled(self.f2.size(), QtCore.Qt.KeepAspectRatio)
        self.myScaledf3 = self.pixf3.scaled(self.f3.size(), QtCore.Qt.KeepAspectRatio)
        self.myScaledf4 = self.pixf4.scaled(self.f4.size(), QtCore.Qt.KeepAspectRatio)
        self.myScaledAzul = self.Blue.scaled(self.f1.size(), QtCore.Qt.KeepAspectRatio)
        self.myScaledMuerto = self.Muerto.scaled(self.f1.size(), QtCore.Qt.KeepAspectRatio)
        self.f1.setPixmap(self.myScaledf1)
        self.f2.setPixmap(self.myScaledf2)
        self.f3.setPixmap(self.myScaledf3)
        self.f4.setPixmap(self.myScaledf4)
        self.picman.move(x * 3, y * 3)
        self.f1.move(x1 * 3, y1 * 3)
        self.f2.move(x2 * 3, y2 * 3)
        self.f3.move(x3 * 3, y3 * 3)
        self.f4.move(x4 * 3, y4 * 3)

    def paintEvent(self, event):
        qp = QtGui.QPainter()
        qp.begin(self)
        self.drawlines(qp)
        qp.end()

    def drawlines(self, qp):
        pen = QtGui.QPen(QtCore.Qt.black, 35, QtCore.Qt.SolidLine)
        qp.setPen(pen)
        for i in range(len(self.mapa) - 1):
            for j in range(len(self.mapa[0]) - 1):
                if self.mapa[i][j] not in ('0', '4', '3', '6', '9'):
                    qp.drawPoint(j * 3, i * 3)
        pen = QtGui.QPen(QtCore.Qt.yellow, 2, QtCore.Qt.SolidLine)
        qp.setPen(pen)
        for i in range(len(self.mapa) - 1):
            for j in range(len(self.mapa[0]) - 1):
                if self.mapa[i][j] not in ('0', '4', '3', '6', '9'):
                    if self.mapa[i][j] == '7':
                        pen = QtGui.QPen(QtCore.Qt.red, 5, QtCore.Qt.SolidLine)
                        qp.setPen(pen)
                        qp.drawPoint(j * 3, i * 3)
                        pen = QtGui.QPen(QtCore.Qt.yellow, 2, QtCore.Qt.SolidLine)
                        qp.setPen(pen)
                    elif self.mapa[i][j] == '2':
                        qp.drawPoint(j * 3, i * 3)

    def start_threads(self):
        self.pocmon = Pacman(self)
        self.pocmon.trigger.connect(self.correr)
        self.pocmon.setup(self.picman, self.mapa)
        self.pocmon.start()
        self.MrPatiwi = FantasmaRojo(self)
        self.MrPatiwi.setup(self.f1, self.mapa, self.pocmon, self.myScaledf1, self.puerta)
        self.Marquiwi = FantasmaNaranja(self)
        self.Marquiwi.setup(self.f3, self.mapa, self.pocmon, self.myScaledf3, self.puerta)
        self.Belenciwi = FantasmaNaranja(self)
        self.Belenciwi.setup(self.f4, self.mapa, self.pocmon, self.myScaledf4, self.puerta)
        self.Jaimiwi = FantasmaNaranja(self)
        self.Jaimiwi.setup(self.f2, self.mapa, self.pocmon, self.myScaledf2, self.puerta)
        for f in Fantasma.fantasmas:
            f.trigger.connect(self.correrFantasmas)
            f.trigg.connect(self.Azul)
            f.menosvida.connect(self.PacmanAtrapado)
            f.start()
        self.Reloj = Reloj()
        self.Reloj.trigger.connect(self.actualizarBarra) #ver si es realmente necesario
        self.Reloj.start()

    def PacmanAtrapado(self):
        self.Reloj.pausa()
        self.pocmon.vidas -= 1
        if self.pocmon.vidas == 0:
            self.GameOver()
        else:
            self.pocmon.estado = True
            for i in Fantasma.fantasmas:
               i.reboot()
            for i in Personaje.personajes:
                i.terminate()
                i.reiniciar_posicion()
            time.sleep(2)
            for i in Personaje.personajes:
                i.start()
            self.Reloj.pausa()

    def GameOver(self, mensaje=None):
        for i in Personaje.personajes:
                i.terminate()
        self.SaveAs.setPuntaje(self.pocmon.puntaje, self.Reloj.reloj, mensaje)
        self.SaveAs.show()

    def keyPressEvent(self, event):
        key = event.key()
        if key != QtCore.Qt.Key_A:
            self.pocmon.direction(key)
        else:
            self.Pausar()

    def Pausar(self):
        if not self.pausa:
            for i in Personaje.personajes:
                i.pausar()
                self.pausa = True
            self.Reloj.pausa()
            self.hide()
            self.Pausa.show()
        else:
            for i in Personaje.personajes:
                i.pausar()
            self.pausa = False
            self.Reloj.pausa()
            self.Pausa.hide()
            self.show()

    def correr(self, pos):
        self.picman.move(pos[0], pos[1])
        if self.pocmon.running == 'Left':
            if self.c % 2 == 0:
                self.picman.setPixmap(self.myPixmapizq.scaled(self.picman.size(), QtCore.Qt.KeepAspectRatio))
            else:
                self.myScaledPixmap2 = self.myPixmap2izq.scaled(self.picman.size(), QtCore.Qt.KeepAspectRatio)
                self.picman.setPixmap(self.myScaledPixmap2)
        elif self.pocmon.running == 'Up' or self.pocmon.running == 'Down':
            if self.pocmon.running == 'Up':
                angle = -90
            else:
                angle = 90
            if self.c % 2 == 0:
                rotated_pixmap = self.myPixmap.transformed(QtGui.QMatrix().rotate(angle),
                                                           QtCore.Qt.SmoothTransformation)
                self.myScaledPixmap = rotated_pixmap.scaled(self.picman.size(), QtCore.Qt.KeepAspectRatio)
                self.picman.setPixmap(self.myScaledPixmap)
            else:
                rotated_pixmap2 = self.myPixmap2.transformed(QtGui.QMatrix().rotate(angle),
                                                             QtCore.Qt.SmoothTransformation)
                self.myScaledPixmap2 = rotated_pixmap2.scaled(self.picman.size(), QtCore.Qt.KeepAspectRatio)
                self.picman.setPixmap(self.myScaledPixmap2)
        else:
            if self.c % 2 == 0:
                self.myScaledPixmap = self.myPixmap.scaled(self.picman.size(), QtCore.Qt.KeepAspectRatio)
                self.picman.setPixmap(self.myScaledPixmap)
            else:
                self.myScaledPixmap2 = self.myPixmap2.scaled(self.picman.size(), QtCore.Qt.KeepAspectRatio)
                self.picman.setPixmap(self.myScaledPixmap2)
        self.c += 1

    def correrFantasmas(self, pos):
        im = pos[2].pic
        im.move(pos[0], pos[1])

    def ComprobarPartida(self):
        if Personaje.Monedas == 525:
            self.Reloj.pausa()
            self.GameOver('Ganaste')


    def Azul(self, fantasma):
        if not fantasma.muerto:
            if not fantasma.estado:
                fantasma.pic.setPixmap(self.myScaledAzul)
            else:
                fantasma.pic.setPixmap(fantasma.pix)
        else:
            fantasma.pic.setPixmap(self.myScaledMuerto)

    def actualizarBarra(self):
        self.ComprobarPartida()
        Puntaje = str(self.pocmon.puntaje)
        vidas = str(self.pocmon.vidas)
        self.barra.setText(
            '  Puntaje: {0:4s} Record: {1:4s} Vidas:{2:2s}  Tiempo Restante: {3:4s}'.format(Puntaje, self.record, vidas,
                                                                                             self.Reloj.reloj))

    def restart(self):
        self.hide()
        self.close()
        subprocess.call("python" + " UI.py", shell=True)

    def __getstate__(self):
        nueva = self.__dict__.copy()
        #nueva.__delitem__('PauseMenu')
        return nueva