Exemplo n.º 1
0
 def __init__(self, parent):
     
     self.rootNode = parent
     self.divNodeWinLooseMenue = avg.DivNode(parent = self.rootNode, size  = self.rootNode.size, active = False)
     self.background = avg.ImageNode(parent = self.divNodeWinLooseMenue, href = "DatBG.png", size = self.divNodeWinLooseMenue.size) 
     self.header = TextRectNode(parent = self.divNodeWinLooseMenue, 
                                pos = (0,0),
                                href = "Overlay1.png",
                                size = avg.Point2D(self.divNodeWinLooseMenue.size[0],self.divNodeWinLooseMenue.size[1]*0.25)
                                )
     
     self.header.addText("MultiTetris")
     self.header.setActivity(False)
     
     self.buttonSomeOneWon = TextRectNode(parent = self.divNodeWinLooseMenue, 
                                pos = (self.divNodeWinLooseMenue.size[0]*0.3,self.divNodeWinLooseMenue.size[1]*0.25),
                                href = "Overlay1.png",
                                size = avg.Point2D(self.divNodeWinLooseMenue.size[0]*0.25,self.divNodeWinLooseMenue.size[1]*0.15))
     self.buttonSomeOneWon.addTextGameTypeAndMain("  SomeOneWon  ")
     
     self.buttonSomeOneWon.setActivity(False)
     
     self.buttonNextGame = TextRectNode(parent = self.divNodeWinLooseMenue, 
                                pos = (self.divNodeWinLooseMenue.size[0]*0.40,self.divNodeWinLooseMenue.size[1]*0.45),
                                sensitive = False,
                                href = "Overlay1.png",
                                size = avg.Point2D(self.divNodeWinLooseMenue.size[0]*0.15,self.divNodeWinLooseMenue.size[1]*0.10))
     self.buttonNextGame.addTextGameTypeAndMain("Mainmenue")
Exemplo n.º 2
0
class WinLooseMenue(object):
    def __init__(self, parent):

        self.rootNode = parent
        self.divNodeWinLooseMenue = avg.DivNode(parent=self.rootNode,
                                                size=self.rootNode.size,
                                                active=False)
        self.background = avg.ImageNode(parent=self.divNodeWinLooseMenue,
                                        href="DatBG.png",
                                        size=self.divNodeWinLooseMenue.size)
        self.header = TextRectNode(
            parent=self.divNodeWinLooseMenue,
            pos=(0, 0),
            href="Overlay1.png",
            size=avg.Point2D(self.divNodeWinLooseMenue.size[0],
                             self.divNodeWinLooseMenue.size[1] * 0.25))

        self.header.addText("MultiTetris")
        self.header.setActivity(False)

        self.buttonSomeOneWon = TextRectNode(
            parent=self.divNodeWinLooseMenue,
            pos=(self.divNodeWinLooseMenue.size[0] * 0.3,
                 self.divNodeWinLooseMenue.size[1] * 0.25),
            href="Overlay1.png",
            size=avg.Point2D(self.divNodeWinLooseMenue.size[0] * 0.25,
                             self.divNodeWinLooseMenue.size[1] * 0.15))
        self.buttonSomeOneWon.addTextGameTypeAndMain("  SomeOneWon  ")

        self.buttonSomeOneWon.setActivity(False)

        self.buttonNextGame = TextRectNode(
            parent=self.divNodeWinLooseMenue,
            pos=(self.divNodeWinLooseMenue.size[0] * 0.40,
                 self.divNodeWinLooseMenue.size[1] * 0.45),
            sensitive=False,
            href="Overlay1.png",
            size=avg.Point2D(self.divNodeWinLooseMenue.size[0] * 0.15,
                             self.divNodeWinLooseMenue.size[1] * 0.10))
        self.buttonNextGame.addTextGameTypeAndMain("Mainmenue")
Exemplo n.º 3
0
 def __init__(self, parent):
     
     self.rootNode = parent
     self.divNodeMainMenue = avg.DivNode(parent = self.rootNode, size  = self.rootNode.size)
     
     self.background = avg.ImageNode(parent = self.divNodeMainMenue, href = "DatBG.png", size = self.divNodeMainMenue.size)
     self.header = TextRectNode(parent = self.divNodeMainMenue, 
                                pos = (0,0),href = "DatBG.png",
                                size = avg.Point2D(self.divNodeMainMenue.size[0],self.divNodeMainMenue.size[1]*0.25)
                                )
     
     self.header.addText("MultiTetris")
     self.header.setActivity(False)
     
     self.buttonCreateGame = TextRectNode(parent = self.divNodeMainMenue, 
                                pos = (self.divNodeMainMenue.size[0]*0.3,self.divNodeMainMenue.size[1]*0.25),
                                href = "DatBG.png",
                                size = avg.Point2D(self.divNodeMainMenue.size[0]*0.25,self.divNodeMainMenue.size[1]*0.15))
     self.buttonCreateGame.addTextGameTypeAndMain("  Create Game:  ")
     self.buttonCreateGame.setActivity(False)
     
     self.button1vs1 = TextRectNode(parent = self.divNodeMainMenue, 
                                pos = (self.divNodeMainMenue.size[0]*0.40,self.divNodeMainMenue.size[1]*0.45),
                                href = "Overlay1.png",
                                size = avg.Point2D(self.divNodeMainMenue.size[0]*0.15,self.divNodeMainMenue.size[1]*0.10))
     self.button1vs1.addTextGameTypeAndMain("1vs1")
     
     self.button2vs2 = TextRectNode(parent = self.divNodeMainMenue, 
                                pos = (self.divNodeMainMenue.size[0]*0.40,self.divNodeMainMenue.size[1]*0.75),
                                href = "Overlay1.png",
                                size = avg.Point2D(self.divNodeMainMenue.size[0]*0.15,self.divNodeMainMenue.size[1]*0.10))
     self.button2vs2.addTextGameTypeAndMain("2vs2")
     
     self.button1vs1vs1 = TextRectNode(parent = self.divNodeMainMenue, 
                                pos = (self.divNodeMainMenue.size[0]*0.40,self.divNodeMainMenue.size[1]*0.60),
                                href = "Overlay1.png",
                                size = avg.Point2D(self.divNodeMainMenue.size[0]*0.15,self.divNodeMainMenue.size[1]*0.10))
     self.button1vs1vs1.addTextGameTypeAndMain("1vs1vs1")
Exemplo n.º 4
0
        def __init__(self, parent):
            self.rootNode = parent
            self.divNodeTypeMenue = avg.DivNode(parent = self.rootNode, size  = self.rootNode.size)
            self.background = avg.ImageNode(parent = self.divNodeTypeMenue, href = "DatBG.png", size = self.divNodeTypeMenue.size)
            self.header = TextRectNode(parent = self.divNodeTypeMenue, 
                                       pos = (0,0),
                                       href = "DatBG.png",
                                       size = avg.Point2D(self.divNodeTypeMenue.size[0],self.divNodeTypeMenue.size[1]*0.25)
                                       )
            
            self.header.addText("MultiTetris")
            self.header.setActivity(False)
            
            self.buttonCreateGame = TextRectNode(parent = self.divNodeTypeMenue, 
                                       pos = (self.divNodeTypeMenue.size[0]*0.3,self.divNodeTypeMenue.size[1]*0.25),
                                       href = "Overlay1.png",
                                       size = avg.Point2D(self.divNodeTypeMenue.size[0]*0.25,self.divNodeTypeMenue.size[1]*0.15))
            self.buttonCreateGame.addTextGameTypeAndMain("Choose Gametype:")
            self.buttonCreateGame.setActivity(False)

            self.buttonEqualMode = TextRectNode(parent = self.divNodeTypeMenue, 
                                       pos = (self.divNodeTypeMenue.size[0]*0.40,self.divNodeTypeMenue.size[1]*0.45),
                                       href = "Overlay1.png",
                                       size = avg.Point2D(self.divNodeTypeMenue.size[0]*0.15,self.divNodeTypeMenue.size[1]*0.10))
            self.buttonEqualMode.addTextGameTypeAndMain("Equal-Mode")
             
            self.buttonNormalMode = TextRectNode(parent = self.divNodeTypeMenue, 
                                       pos = (self.divNodeTypeMenue.size[0]*0.40,self.divNodeTypeMenue.size[1]*0.60),
                                       href = "Overlay1.png",
                                       size = avg.Point2D(self.divNodeTypeMenue.size[0]*0.15,self.divNodeTypeMenue.size[1]*0.10))
            self.buttonNormalMode.addTextGameTypeAndMain("Classic-Mode")
            
            self.backButton = TextRectNode(parent = self.divNodeTypeMenue, 
                                       pos = (self.divNodeTypeMenue.size[0]*0.40,self.divNodeTypeMenue.size[1]*0.75),
                                       href = "Overlay1.png",
                                       size = avg.Point2D(self.divNodeTypeMenue.size[0]*0.15,self.divNodeTypeMenue.size[1]*0.10))
            self.backButton.addTextGameTypeAndMain("Back")
Exemplo n.º 5
0
    def __init__(self, parent):
        self.rootNode = parent
        self.divNodeOptionMenue = avg.DivNode(parent = self.rootNode, size  = self.rootNode.size, active = False)
        self.background = avg.ImageNode(parent = self.divNodeOptionMenue, href = "DatBG.png", size = self.divNodeOptionMenue.size)
        self.header = TextRectNode(parent = self.divNodeOptionMenue, 
                                   href = "DatBG.png",
                                   pos = (0,0),
                                   size = avg.Point2D(self.divNodeOptionMenue.size[0],self.divNodeOptionMenue.size[1]*0.25)
                                   )
        
        self.header.addText("MultiTetris")
        self.header.setActivity(False)
        
        self.buttonPause = TextRectNode(parent = self.divNodeOptionMenue, 
                                   pos = (self.divNodeOptionMenue.size[0]*0.3,self.divNodeOptionMenue.size[1]*0.25),
                                   href = "Overlay1.png",
                                   size = avg.Point2D(self.divNodeOptionMenue.size[0]*0.25,self.divNodeOptionMenue.size[1]*0.15))
        self.buttonPause.addTextGameTypeAndMain("Pause")
        self.buttonPause.setActivity(False)

        self.buttonResume = TextRectNode(parent = self.divNodeOptionMenue, 
                                   pos = (self.divNodeOptionMenue.size[0]*0.40,self.divNodeOptionMenue.size[1]*0.42),
                                   href = "Overlay1.png",
                                   size = avg.Point2D(self.divNodeOptionMenue.size[0]*0.15,self.divNodeOptionMenue.size[1]*0.10))
        self.buttonResume.addTextGameTypeAndMain("Resume")
        
        self.buttonSound = TextRectNode(parent = self.divNodeOptionMenue, 
                                   pos = (self.divNodeOptionMenue.size[0]*0.40,self.divNodeOptionMenue.size[1]*0.57),
                                   href = "Overlay1.png",
                                   size = avg.Point2D(self.divNodeOptionMenue.size[0]*0.15,self.divNodeOptionMenue.size[1]*0.10))
        self.buttonSound.addTextGameTypeAndMain("Sound:  ON")
        
        self.buttonFinish = TextRectNode(parent = self.divNodeOptionMenue, 
                                   pos = (self.divNodeOptionMenue.size[0]*0.40,self.divNodeOptionMenue.size[1]*0.72),
                                   href = "Overlay1.png",
                                   size = avg.Point2D(self.divNodeOptionMenue.size[0]*0.15,self.divNodeOptionMenue.size[1]*0.10))
        self.buttonFinish.addTextGameTypeAndMain("Quit")
Exemplo n.º 6
0
    def __init__(self, parent, modus, gui, kind):

        #####################################################################################
        #        player[0] ist immer Defender Feld 1
        #        player[1] ist immer Defender Feld 2
        #        player[2] ist immer Attacker fuer Team Feld1
        #        player[3] ist immer Attacker fuer Team Feld2
        #####################################################################################

        self.gui = gui
        self.typ = 0
        if (kind == 1):
            self.typ = 1

        self.rootNode = parent
        self.player = ["", "", "", ""]
        self.playerIP = ["", "", "", ""]
        self.rdyPlayer = [False, False, False, False]
        self.rectNodPlayerArr = [None, None, None, None]
        self.connectedPlayers = 0
        self.whoToSwap = -1
        self.playstyleModus = ""
        self.modus = modus
        if (self.modus == 2):
            self.playstyleModus = "1vs1"
            self.player[0] = "Defender"
            self.player[1] = "Defender"
        elif (self.modus == 3):
            self.playstyleModus = "1vs1vs1"
            self.player[0] = "Defender"
            self.player[1] = "Defender"
            self.player[2] = "Attacker"
        elif (self.modus == 4):
            self.playstyleModus = "2vs2"
            self.player[0] = "Defender"
            self.player[1] = "Defender"
            self.player[2] = "Attacker"
            self.player[3] = "Attacker"
        else:
            raise SyntaxError("Falscher Modus in startlobby")

        self.divNodelobbyMenue = avg.DivNode(parent=self.rootNode,
                                             size=self.rootNode.size,
                                             active=False)
        self.background = avg.ImageNode(
            parent=self.divNodelobbyMenue,
            href="Overlay1.png",
            pos=(0, self.divNodelobbyMenue.size[1] * 0.29),
            size=(self.divNodelobbyMenue.size[0],
                  self.divNodelobbyMenue.size[1] * 0.71))

        self.settingsImage = avg.ImageNode(
            parent=self.divNodelobbyMenue,
            href="Overlay1.png",
            pos=(0, 0),
            size=(self.divNodelobbyMenue.size[0],
                  self.divNodelobbyMenue.size[1] * 0.29))

        self.gameName = TextRectNode(
            parent=self.divNodelobbyMenue,
            pos=(0, self.divNodelobbyMenue.size[1] * 0.07),
            href="Overlay1.png",
            size=avg.Point2D(self.divNodelobbyMenue.size[0] / 2.4,
                             self.divNodelobbyMenue.size[1] * 0.07))
        self.gameName.addTextForLobbyLine(
            "IP:", socket.gethostbyname(socket.gethostname()))
        self.gameName.setActivity(False)

        self.type = TextRectNode(parent=self.divNodelobbyMenue,
                                 pos=(0, 0),
                                 href="Overlay1.png",
                                 size=avg.Point2D(
                                     self.divNodelobbyMenue.size[0] / 2.4,
                                     self.divNodelobbyMenue.size[1] * 0.07))
        if (self.typ == 0):
            self.type.addTextForLobbyLine("Type:", "Classic")
        else:
            self.type.addTextForLobbyLine("Type:", "EqualMode")
        self.type.setActivity(False)

        self.playStyle = TextRectNode(
            parent=self.divNodelobbyMenue,
            pos=(self.divNodelobbyMenue.size[0] -
                 self.divNodelobbyMenue.size[0] / 2.4, 0),
            href="Overlay1.png",
            size=avg.Point2D(self.divNodelobbyMenue.size[0] / 2.4,
                             self.divNodelobbyMenue.size[1] * 0.07))
        self.playStyle.addTextForLobbyLine("Playstyle:", self.playstyleModus)
        self.playStyle.setActivity(False)

        self.numberPlayers = TextRectNode(
            parent=self.divNodelobbyMenue,
            pos=(self.divNodelobbyMenue.size[0] -
                 self.divNodelobbyMenue.size[0] / 2.4,
                 self.divNodelobbyMenue.size[1] * 0.07),
            href="Overlay1.png",
            size=avg.Point2D(self.divNodelobbyMenue.size[0] / 2.4,
                             self.divNodelobbyMenue.size[1] * 0.07))

        self.numberPlayers.addTextForLobbyLine(
            "Players connected:",
            str(self.connectedPlayers) + "/" + str(self.modus))
        self.numberPlayers.setActivity(False)

        self.backButton = TextRectNode(
            parent=self.divNodelobbyMenue,
            pos=(self.divNodelobbyMenue.size[0] / 2.4, 0),
            href="Overlay1.png",
            size=avg.Point2D(
                2 * (self.divNodelobbyMenue.size[0] / 2 -
                     self.divNodelobbyMenue.size[0] / 2.4),
                self.divNodelobbyMenue.size[1] * 0.14))
        self.backButton.addTextForBackButton("Back")

        self.teamOne = TextRectNode(
            parent=self.divNodelobbyMenue,
            pos=(0, self.divNodelobbyMenue.size[1] * 0.07 +
                 self.divNodelobbyMenue.size[1] * 0.07),
            href="Overlay1.png",
            size=avg.Point2D(self.divNodelobbyMenue.size[0] / 2,
                             self.divNodelobbyMenue.size[1] * 0.15))
        self.teamOne.addText("Team 1")
        self.teamOne.setActivity(False)

        self.teamTwo = TextRectNode(
            parent=self.divNodelobbyMenue,
            pos=(self.divNodelobbyMenue.size[0] / 2,
                 self.divNodelobbyMenue.size[1] * 0.07 +
                 self.divNodelobbyMenue.size[1] * 0.07),
            href="Overlay1.png",
            size=avg.Point2D(self.divNodelobbyMenue.size[0] / 2,
                             self.divNodelobbyMenue.size[1] * 0.15))
        self.teamTwo.addText("Team 2")
        self.teamTwo.setActivity(False)

        aktuelleHoehe = self.divNodelobbyMenue.size[
            1] * 0.07 + self.divNodelobbyMenue.size[
                1] * 0.07 + self.divNodelobbyMenue.size[1] * 0.15

        #----------------------------------------------Player Felder-------------------------------------------------------------------------------------------------------------------------
        if (self.modus == 4):
            self.firstPlayer = TextRectNode(
                parent=self.divNodelobbyMenue,
                pos=(0, aktuelleHoehe),
                href="Overlay1.png",
                size=avg.Point2D(self.divNodelobbyMenue.size[0] / 2,
                                 self.divNodelobbyMenue.size[1] * 0.35))
            self.firstPlayer.addText(self.player[0])

            self.secondPlayer = TextRectNode(
                parent=self.divNodelobbyMenue,
                pos=(self.divNodelobbyMenue.size[0] / 2, aktuelleHoehe),
                href="Overlay1.png",
                size=avg.Point2D(self.divNodelobbyMenue.size[0] / 2,
                                 self.divNodelobbyMenue.size[1] * 0.35))
            self.secondPlayer.addText(self.player[1])

            aktuelleHoehe += self.divNodelobbyMenue.size[1] * 0.35

            self.thirdPlayer = TextRectNode(
                parent=self.divNodelobbyMenue,
                pos=(0, aktuelleHoehe),
                href="Overlay1.png",
                size=avg.Point2D(self.divNodelobbyMenue.size[0] / 2,
                                 self.divNodelobbyMenue.size[1] * 0.35))
            self.thirdPlayer.addText(self.player[2])

            self.forthPlayer = TextRectNode(
                parent=self.divNodelobbyMenue,
                pos=(self.divNodelobbyMenue.size[0] / 2, aktuelleHoehe),
                href="Overlay1.png",
                size=avg.Point2D(self.divNodelobbyMenue.size[0] / 2,
                                 self.divNodelobbyMenue.size[1] * 0.35))
            self.forthPlayer.addText(self.player[3])

            self.rectNodPlayerArr = [
                self.firstPlayer, self.secondPlayer, self.thirdPlayer,
                self.forthPlayer
            ]

            self.firstPlayer.connectEventHandler(avg.CURSORDOWN, avg.TOUCH,
                                                 self.firstPlayer,
                                                 self.onClick)
            self.secondPlayer.connectEventHandler(avg.CURSORDOWN, avg.TOUCH,
                                                  self.secondPlayer,
                                                  self.onClick)
            self.thirdPlayer.connectEventHandler(avg.CURSORDOWN, avg.TOUCH,
                                                 self.thirdPlayer,
                                                 self.onClick)
            self.forthPlayer.connectEventHandler(avg.CURSORDOWN, avg.TOUCH,
                                                 self.forthPlayer,
                                                 self.onClick)

#----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

        elif (self.modus == 2):
            self.firstPlayer = TextRectNode(
                parent=self.divNodelobbyMenue,
                pos=(0, aktuelleHoehe),
                href="Overlay1.png",
                size=avg.Point2D(self.divNodelobbyMenue.size[0] / 2,
                                 self.divNodelobbyMenue.size[1] * 0.35))
            self.firstPlayer.addText(self.player[0])

            self.secondPlayer = TextRectNode(
                parent=self.divNodelobbyMenue,
                pos=(self.divNodelobbyMenue.size[0] / 2, aktuelleHoehe),
                href="Overlay1.png",
                size=avg.Point2D(self.divNodelobbyMenue.size[0] / 2,
                                 self.divNodelobbyMenue.size[1] * 0.35))
            self.secondPlayer.addText(self.player[1])

            self.rectNodPlayerArr = [self.firstPlayer, self.secondPlayer]

            self.firstPlayer.connectEventHandler(avg.CURSORDOWN, avg.TOUCH,
                                                 self.firstPlayer,
                                                 self.onClick)
            self.secondPlayer.connectEventHandler(avg.CURSORDOWN, avg.TOUCH,
                                                  self.secondPlayer,
                                                  self.onClick)

#----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

        else:
            self.firstPlayer = TextRectNode(
                parent=self.divNodelobbyMenue,
                pos=(0, aktuelleHoehe),
                href="Overlay1.png",
                size=avg.Point2D(self.divNodelobbyMenue.size[0] / 2,
                                 self.divNodelobbyMenue.size[1] * 0.35))
            self.firstPlayer.addText(self.player[0])

            self.secondPlayer = TextRectNode(
                parent=self.divNodelobbyMenue,
                pos=(self.divNodelobbyMenue.size[0] / 2, aktuelleHoehe),
                href="Overlay1.png",
                size=avg.Point2D(self.divNodelobbyMenue.size[0] / 2,
                                 self.divNodelobbyMenue.size[1] * 0.35))
            self.secondPlayer.addText(self.player[1])

            aktuelleHoehe += self.divNodelobbyMenue.size[1] * 0.35

            self.thirdPlayer = TextRectNode(
                parent=self.divNodelobbyMenue,
                pos=(self.divNodelobbyMenue.size[0] / 4, aktuelleHoehe),
                href="Overlay1.png",
                size=avg.Point2D(self.divNodelobbyMenue.size[0] / 2,
                                 self.divNodelobbyMenue.size[1] * 0.35))
            self.thirdPlayer.addText(self.player[2])

            self.rectNodPlayerArr = [
                self.firstPlayer, self.secondPlayer, self.thirdPlayer
            ]

            self.firstPlayer.connectEventHandler(avg.CURSORDOWN, avg.TOUCH,
                                                 self.firstPlayer,
                                                 self.onClick)
            self.secondPlayer.connectEventHandler(avg.CURSORDOWN, avg.TOUCH,
                                                  self.secondPlayer,
                                                  self.onClick)
            self.thirdPlayer.connectEventHandler(avg.CURSORDOWN, avg.TOUCH,
                                                 self.thirdPlayer,
                                                 self.onClick)
Exemplo n.º 7
0
class LobbyMenue(object):
    def __init__(self, parent, modus, gui, kind):

        #####################################################################################
        #        player[0] ist immer Defender Feld 1
        #        player[1] ist immer Defender Feld 2
        #        player[2] ist immer Attacker fuer Team Feld1
        #        player[3] ist immer Attacker fuer Team Feld2
        #####################################################################################

        self.gui = gui
        self.typ = 0
        if (kind == 1):
            self.typ = 1

        self.rootNode = parent
        self.player = ["", "", "", ""]
        self.playerIP = ["", "", "", ""]
        self.rdyPlayer = [False, False, False, False]
        self.rectNodPlayerArr = [None, None, None, None]
        self.connectedPlayers = 0
        self.whoToSwap = -1
        self.playstyleModus = ""
        self.modus = modus
        if (self.modus == 2):
            self.playstyleModus = "1vs1"
            self.player[0] = "Defender"
            self.player[1] = "Defender"
        elif (self.modus == 3):
            self.playstyleModus = "1vs1vs1"
            self.player[0] = "Defender"
            self.player[1] = "Defender"
            self.player[2] = "Attacker"
        elif (self.modus == 4):
            self.playstyleModus = "2vs2"
            self.player[0] = "Defender"
            self.player[1] = "Defender"
            self.player[2] = "Attacker"
            self.player[3] = "Attacker"
        else:
            raise SyntaxError("Falscher Modus in startlobby")

        self.divNodelobbyMenue = avg.DivNode(parent=self.rootNode,
                                             size=self.rootNode.size,
                                             active=False)
        self.background = avg.ImageNode(
            parent=self.divNodelobbyMenue,
            href="Overlay1.png",
            pos=(0, self.divNodelobbyMenue.size[1] * 0.29),
            size=(self.divNodelobbyMenue.size[0],
                  self.divNodelobbyMenue.size[1] * 0.71))

        self.settingsImage = avg.ImageNode(
            parent=self.divNodelobbyMenue,
            href="Overlay1.png",
            pos=(0, 0),
            size=(self.divNodelobbyMenue.size[0],
                  self.divNodelobbyMenue.size[1] * 0.29))

        self.gameName = TextRectNode(
            parent=self.divNodelobbyMenue,
            pos=(0, self.divNodelobbyMenue.size[1] * 0.07),
            href="Overlay1.png",
            size=avg.Point2D(self.divNodelobbyMenue.size[0] / 2.4,
                             self.divNodelobbyMenue.size[1] * 0.07))
        self.gameName.addTextForLobbyLine(
            "IP:", socket.gethostbyname(socket.gethostname()))
        self.gameName.setActivity(False)

        self.type = TextRectNode(parent=self.divNodelobbyMenue,
                                 pos=(0, 0),
                                 href="Overlay1.png",
                                 size=avg.Point2D(
                                     self.divNodelobbyMenue.size[0] / 2.4,
                                     self.divNodelobbyMenue.size[1] * 0.07))
        if (self.typ == 0):
            self.type.addTextForLobbyLine("Type:", "Classic")
        else:
            self.type.addTextForLobbyLine("Type:", "EqualMode")
        self.type.setActivity(False)

        self.playStyle = TextRectNode(
            parent=self.divNodelobbyMenue,
            pos=(self.divNodelobbyMenue.size[0] -
                 self.divNodelobbyMenue.size[0] / 2.4, 0),
            href="Overlay1.png",
            size=avg.Point2D(self.divNodelobbyMenue.size[0] / 2.4,
                             self.divNodelobbyMenue.size[1] * 0.07))
        self.playStyle.addTextForLobbyLine("Playstyle:", self.playstyleModus)
        self.playStyle.setActivity(False)

        self.numberPlayers = TextRectNode(
            parent=self.divNodelobbyMenue,
            pos=(self.divNodelobbyMenue.size[0] -
                 self.divNodelobbyMenue.size[0] / 2.4,
                 self.divNodelobbyMenue.size[1] * 0.07),
            href="Overlay1.png",
            size=avg.Point2D(self.divNodelobbyMenue.size[0] / 2.4,
                             self.divNodelobbyMenue.size[1] * 0.07))

        self.numberPlayers.addTextForLobbyLine(
            "Players connected:",
            str(self.connectedPlayers) + "/" + str(self.modus))
        self.numberPlayers.setActivity(False)

        self.backButton = TextRectNode(
            parent=self.divNodelobbyMenue,
            pos=(self.divNodelobbyMenue.size[0] / 2.4, 0),
            href="Overlay1.png",
            size=avg.Point2D(
                2 * (self.divNodelobbyMenue.size[0] / 2 -
                     self.divNodelobbyMenue.size[0] / 2.4),
                self.divNodelobbyMenue.size[1] * 0.14))
        self.backButton.addTextForBackButton("Back")

        self.teamOne = TextRectNode(
            parent=self.divNodelobbyMenue,
            pos=(0, self.divNodelobbyMenue.size[1] * 0.07 +
                 self.divNodelobbyMenue.size[1] * 0.07),
            href="Overlay1.png",
            size=avg.Point2D(self.divNodelobbyMenue.size[0] / 2,
                             self.divNodelobbyMenue.size[1] * 0.15))
        self.teamOne.addText("Team 1")
        self.teamOne.setActivity(False)

        self.teamTwo = TextRectNode(
            parent=self.divNodelobbyMenue,
            pos=(self.divNodelobbyMenue.size[0] / 2,
                 self.divNodelobbyMenue.size[1] * 0.07 +
                 self.divNodelobbyMenue.size[1] * 0.07),
            href="Overlay1.png",
            size=avg.Point2D(self.divNodelobbyMenue.size[0] / 2,
                             self.divNodelobbyMenue.size[1] * 0.15))
        self.teamTwo.addText("Team 2")
        self.teamTwo.setActivity(False)

        aktuelleHoehe = self.divNodelobbyMenue.size[
            1] * 0.07 + self.divNodelobbyMenue.size[
                1] * 0.07 + self.divNodelobbyMenue.size[1] * 0.15

        #----------------------------------------------Player Felder-------------------------------------------------------------------------------------------------------------------------
        if (self.modus == 4):
            self.firstPlayer = TextRectNode(
                parent=self.divNodelobbyMenue,
                pos=(0, aktuelleHoehe),
                href="Overlay1.png",
                size=avg.Point2D(self.divNodelobbyMenue.size[0] / 2,
                                 self.divNodelobbyMenue.size[1] * 0.35))
            self.firstPlayer.addText(self.player[0])

            self.secondPlayer = TextRectNode(
                parent=self.divNodelobbyMenue,
                pos=(self.divNodelobbyMenue.size[0] / 2, aktuelleHoehe),
                href="Overlay1.png",
                size=avg.Point2D(self.divNodelobbyMenue.size[0] / 2,
                                 self.divNodelobbyMenue.size[1] * 0.35))
            self.secondPlayer.addText(self.player[1])

            aktuelleHoehe += self.divNodelobbyMenue.size[1] * 0.35

            self.thirdPlayer = TextRectNode(
                parent=self.divNodelobbyMenue,
                pos=(0, aktuelleHoehe),
                href="Overlay1.png",
                size=avg.Point2D(self.divNodelobbyMenue.size[0] / 2,
                                 self.divNodelobbyMenue.size[1] * 0.35))
            self.thirdPlayer.addText(self.player[2])

            self.forthPlayer = TextRectNode(
                parent=self.divNodelobbyMenue,
                pos=(self.divNodelobbyMenue.size[0] / 2, aktuelleHoehe),
                href="Overlay1.png",
                size=avg.Point2D(self.divNodelobbyMenue.size[0] / 2,
                                 self.divNodelobbyMenue.size[1] * 0.35))
            self.forthPlayer.addText(self.player[3])

            self.rectNodPlayerArr = [
                self.firstPlayer, self.secondPlayer, self.thirdPlayer,
                self.forthPlayer
            ]

            self.firstPlayer.connectEventHandler(avg.CURSORDOWN, avg.TOUCH,
                                                 self.firstPlayer,
                                                 self.onClick)
            self.secondPlayer.connectEventHandler(avg.CURSORDOWN, avg.TOUCH,
                                                  self.secondPlayer,
                                                  self.onClick)
            self.thirdPlayer.connectEventHandler(avg.CURSORDOWN, avg.TOUCH,
                                                 self.thirdPlayer,
                                                 self.onClick)
            self.forthPlayer.connectEventHandler(avg.CURSORDOWN, avg.TOUCH,
                                                 self.forthPlayer,
                                                 self.onClick)

#----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

        elif (self.modus == 2):
            self.firstPlayer = TextRectNode(
                parent=self.divNodelobbyMenue,
                pos=(0, aktuelleHoehe),
                href="Overlay1.png",
                size=avg.Point2D(self.divNodelobbyMenue.size[0] / 2,
                                 self.divNodelobbyMenue.size[1] * 0.35))
            self.firstPlayer.addText(self.player[0])

            self.secondPlayer = TextRectNode(
                parent=self.divNodelobbyMenue,
                pos=(self.divNodelobbyMenue.size[0] / 2, aktuelleHoehe),
                href="Overlay1.png",
                size=avg.Point2D(self.divNodelobbyMenue.size[0] / 2,
                                 self.divNodelobbyMenue.size[1] * 0.35))
            self.secondPlayer.addText(self.player[1])

            self.rectNodPlayerArr = [self.firstPlayer, self.secondPlayer]

            self.firstPlayer.connectEventHandler(avg.CURSORDOWN, avg.TOUCH,
                                                 self.firstPlayer,
                                                 self.onClick)
            self.secondPlayer.connectEventHandler(avg.CURSORDOWN, avg.TOUCH,
                                                  self.secondPlayer,
                                                  self.onClick)

#----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

        else:
            self.firstPlayer = TextRectNode(
                parent=self.divNodelobbyMenue,
                pos=(0, aktuelleHoehe),
                href="Overlay1.png",
                size=avg.Point2D(self.divNodelobbyMenue.size[0] / 2,
                                 self.divNodelobbyMenue.size[1] * 0.35))
            self.firstPlayer.addText(self.player[0])

            self.secondPlayer = TextRectNode(
                parent=self.divNodelobbyMenue,
                pos=(self.divNodelobbyMenue.size[0] / 2, aktuelleHoehe),
                href="Overlay1.png",
                size=avg.Point2D(self.divNodelobbyMenue.size[0] / 2,
                                 self.divNodelobbyMenue.size[1] * 0.35))
            self.secondPlayer.addText(self.player[1])

            aktuelleHoehe += self.divNodelobbyMenue.size[1] * 0.35

            self.thirdPlayer = TextRectNode(
                parent=self.divNodelobbyMenue,
                pos=(self.divNodelobbyMenue.size[0] / 4, aktuelleHoehe),
                href="Overlay1.png",
                size=avg.Point2D(self.divNodelobbyMenue.size[0] / 2,
                                 self.divNodelobbyMenue.size[1] * 0.35))
            self.thirdPlayer.addText(self.player[2])

            self.rectNodPlayerArr = [
                self.firstPlayer, self.secondPlayer, self.thirdPlayer
            ]

            self.firstPlayer.connectEventHandler(avg.CURSORDOWN, avg.TOUCH,
                                                 self.firstPlayer,
                                                 self.onClick)
            self.secondPlayer.connectEventHandler(avg.CURSORDOWN, avg.TOUCH,
                                                  self.secondPlayer,
                                                  self.onClick)
            self.thirdPlayer.connectEventHandler(avg.CURSORDOWN, avg.TOUCH,
                                                 self.thirdPlayer,
                                                 self.onClick)

    #zum swappen der spieler
    def onClick(self, event):
        if (self.whoToSwap == -1):
            if (self.modus == 2):
                if (event.node == self.firstPlayer):
                    self.whoToSwap = 0
                elif (event.node == self.secondPlayer):
                    self.whoToSwap = 1
                else:
                    raise SyntaxError("Wtf")

            elif (self.modus == 3):
                if (event.node == self.firstPlayer):
                    self.whoToSwap = 0
                elif (event.node == self.secondPlayer):
                    self.whoToSwap = 1
                elif (event.node == self.thirdPlayer):
                    self.whoToSwap = 2
                else:
                    raise SyntaxError("Wtf")

            elif (self.modus == 4):
                if (event.node == self.firstPlayer):
                    self.whoToSwap = 0
                elif (event.node == self.secondPlayer):
                    self.whoToSwap = 1
                elif (event.node == self.thirdPlayer):
                    self.whoToSwap = 2
                elif (event.node == self.forthPlayer):
                    self.whoToSwap = 3
                else:
                    raise SyntaxError("Wtf")
            else:
                raise SyntaxError("Wtf")
        else:
            if (self.modus == 2):
                if (event.node == self.firstPlayer):
                    self.swapPlayer(self.whoToSwap, 0)
                    self.whoToSwap = -1
                elif (event.node == self.secondPlayer):
                    self.swapPlayer(self.whoToSwap, 1)
                    self.whoToSwap = -1
                else:
                    raise SyntaxError("Wtf")

            elif (self.modus == 3):
                if (event.node == self.firstPlayer):
                    self.swapPlayer(self.whoToSwap, 0)
                    self.whoToSwap = -1
                elif (event.node == self.secondPlayer):
                    self.swapPlayer(self.whoToSwap, 1)
                    self.whoToSwap = -1
                elif (event.node == self.thirdPlayer):
                    self.swapPlayer(self.whoToSwap, 2)
                    self.whoToSwap = -1
                else:
                    raise SyntaxError("Wtf")

            elif (self.modus == 4):
                if (event.node == self.firstPlayer):
                    self.swapPlayer(self.whoToSwap, 0)
                    self.whoToSwap = -1
                elif (event.node == self.secondPlayer):
                    self.swapPlayer(self.whoToSwap, 1)
                    self.whoToSwap = -1
                elif (event.node == self.thirdPlayer):
                    self.swapPlayer(self.whoToSwap, 2)
                    self.whoToSwap = -1
                elif (event.node == self.forthPlayer):
                    self.swapPlayer(self.whoToSwap, 3)
                    self.whoToSwap = -1
                else:
                    raise SyntaxError("Wtf")
            else:
                raise SyntaxError("Wtf")

    # tauscht die spieler (verschiedene arrays muessen umbeschrieben werden)
    def swapPlayer(self, x, y):  # angefangen bei 0 bis 3
        if (x == y):
            pass
        else:
            tmp = self.player[x]
            self.player[x] = self.player[y]
            self.player[y] = tmp

            tmp = self.playerIP[x]
            self.playerIP[x] = self.playerIP[y]
            self.playerIP[y] = tmp
            self.rdyPlayer = [False, False, False, False]

            self.rectNodPlayerArr[x].updateTextNode(self.player[x])
            self.rectNodPlayerArr[y].updateTextNode(self.player[y])
            self.gui.sendMsgToAll("notRdy")

    # setzt rdy wert eines spielers auf false
    def playerNotRdyAnylonge(self, ip):
        i = 0
        for i in range(self.modus):
            if (ip == self.playerIP[i]):
                self.rdyPlayer[i] = False
                break

    # setzt rdy wert eines spieler auf true und startet counter falls alle fertig
    def playerGotRdy(self, ip):
        i = -1
        for k in self.playerIP:
            i += 1
            if (k == ip):
                self.rdyPlayer[i] = True
                break
        p = True
        for b in range(0, self.modus):
            p = (p) and (self.rdyPlayer[b])
        if p:
            self.gui.gameCounter()

    # setzt den spieler auf notrdy (false)
    def playerStopBeingRdy(self, ip):
        i = 0
        for k in self.playerIP:
            if (k == ip):
                break
            i += 1
        self.rdyPlayer[i] = False

    # updatet die array wenn spieler das spiel verlaesst
    def updatePlayerLeft(self, ip):
        self.connectedPlayers -= 1
        self.numberPlayers.updateTextForLobbyLine(
            "Players connected:",
            str(self.connectedPlayers) + "/" + str(self.modus))
        i = 0
        b = False
        for j in range(self.modus):
            self.rdyPlayer[j] = False
        for i in range(self.modus):
            if (self.playerIP[i] == ip):
                if ((i + 1 < self.modus) &
                    ((self.player[i + 1] != "Attacker") &
                     (self.player[i + 1] != "Defender"))):
                    self.player[i] = self.player[i + 1]
                    self.playerIP[i] = self.playerIP[i + 1]
                    (self.rectNodPlayerArr[i]).updateTextNode(self.player[i])
                else:
                    if ((i == 0) | (i == 1)):
                        self.player[i] = "Defender"
                        self.playerIP[i] = ""
                        (self.rectNodPlayerArr[i]).updateTextNode("Defender")
                    else:
                        self.player[i] = "Attacker"
                        self.playerIP[i] = ""
                        (self.rectNodPlayerArr[i]).updateTextNode("Attacker")
                b = True
            else:
                if (b):
                    if ((i + 1 < self.modus) &
                        ((self.player[i + 1] != "Attacker") &
                         (self.player[i + 1] != "Defender"))):
                        self.player[i] = self.player[i + 1]
                        self.playerIP[i] = self.playerIP[i + 1]
                        (self.rectNodPlayerArr[i]).updateTextNode(
                            self.player[i])
                    else:
                        if ((i == 0) | (i == 1)):
                            self.player[i] = "Defender"
                            self.playerIP[i] = ""
                            (self.rectNodPlayerArr[i]
                             ).updateTextNode("Defender")
                        else:
                            self.player[i] = "Attacker"
                            self.playerIP[i] = ""
                            (self.rectNodPlayerArr[i]
                             ).updateTextNode("Attacker")

        self.gui.sendMsgToAll("notRdy")

    # updatet die anzahl der spieler
    def updateJoinedPlayerNumber(self, ip, name):
        if (self.connectedPlayers + 1 > self.modus):
            pass
        else:
            i = 0
            for i in range(self.modus):
                if (self.playerIP[i] == ""):
                    self.numberPlayers.updateTextForLobbyLine(
                        "Players connected:",
                        str(self.connectedPlayers + 1) + "/" + str(self.modus))
                    self.player[i] = name
                    (self.rectNodPlayerArr[i]).updateTextNode(name)
                    self.playerIP[i] = ip
                    self.connectedPlayers += 1
                    break
Exemplo n.º 8
0
    def __init__(self, parent, modus,gui,kind):
        
#####################################################################################
#        player[0] ist immer Defender Feld 1
#        player[1] ist immer Defender Feld 2
#        player[2] ist immer Attacker fuer Team Feld1
#        player[3] ist immer Attacker fuer Team Feld2
#####################################################################################
       
        self.gui = gui
        self.typ = 0
        if(kind == 1):
            self.typ = 1
            
        self.rootNode = parent
        self.player = ["","","",""]
        self.playerIP = ["","","",""]
        self.rdyPlayer = [False,False,False,False]
        self.rectNodPlayerArr = [None,None,None,None]
        self.connectedPlayers = 0
        self.whoToSwap = -1
        self.playstyleModus = ""
        self.modus = modus
        if(self.modus==2):
            self.playstyleModus = "1vs1"
            self.player[0] = "Defender"
            self.player[1] = "Defender"
        elif(self.modus == 3):
            self.playstyleModus = "1vs1vs1"
            self.player[0] = "Defender"
            self.player[1] = "Defender"
            self.player[2] = "Attacker"
        elif(self.modus == 4):
            self.playstyleModus = "2vs2"
            self.player[0] = "Defender"
            self.player[1] = "Defender"
            self.player[2] = "Attacker"
            self.player[3] = "Attacker"
        else:
            raise SyntaxError("Falscher Modus in startlobby")
            
        
        self.divNodelobbyMenue = avg.DivNode(parent = self.rootNode, size  = self.rootNode.size, active = False)
        self.background = avg.ImageNode(parent = self.divNodelobbyMenue, 
                                        href = "Overlay1.png",
                                        pos = (0,self.divNodelobbyMenue.size[1]*0.29),  
                                        size = (self.divNodelobbyMenue.size[0],self.divNodelobbyMenue.size[1]*0.71))
         
        self.settingsImage = avg.ImageNode(parent = self.divNodelobbyMenue, 
                                           href = "Overlay1.png",
                                           pos = (0,0), 
                                           size = (self.divNodelobbyMenue.size[0],self.divNodelobbyMenue.size[1]*0.29))  
          
        self.gameName = TextRectNode(parent = self.divNodelobbyMenue, 
                                   pos = (0,self.divNodelobbyMenue.size[1]*0.07),
                                   href = "Overlay1.png",
                                   size = avg.Point2D(self.divNodelobbyMenue.size[0]/2.4,self.divNodelobbyMenue.size[1]*0.07))
        self.gameName.addTextForLobbyLine("IP:",socket.gethostbyname(socket.gethostname()))
        self.gameName.setActivity(False)
        
        self.type = TextRectNode(parent = self.divNodelobbyMenue, 
                                   pos = (0,0),
                                   href = "Overlay1.png",
                                   size = avg.Point2D(self.divNodelobbyMenue.size[0]/2.4,self.divNodelobbyMenue.size[1]*0.07))
        if(self.typ == 0):
            self.type.addTextForLobbyLine("Type:" , "Classic")
        else:
            self.type.addTextForLobbyLine("Type:" , "EqualMode")
        self.type.setActivity(False)
        
        self.playStyle = TextRectNode(parent = self.divNodelobbyMenue, 
                                   pos = (self.divNodelobbyMenue.size[0] - self.divNodelobbyMenue.size[0]/2.4 ,0),
                                   href = "Overlay1.png",
                                   size = avg.Point2D(self.divNodelobbyMenue.size[0]/2.4,self.divNodelobbyMenue.size[1]*0.07))
        self.playStyle.addTextForLobbyLine("Playstyle:" , self.playstyleModus)
        self.playStyle.setActivity(False)
        
        self.numberPlayers = TextRectNode(parent = self.divNodelobbyMenue, 
                                   pos = (self.divNodelobbyMenue.size[0] - self.divNodelobbyMenue.size[0]/2.4,self.divNodelobbyMenue.size[1]*0.07),
                                   href = "Overlay1.png",
                                   size = avg.Point2D(self.divNodelobbyMenue.size[0]/2.4,self.divNodelobbyMenue.size[1]*0.07))
        
        self.numberPlayers.addTextForLobbyLine("Players connected:", str(self.connectedPlayers)+"/"+ str(self.modus))
        self.numberPlayers.setActivity(False)
        
        self.backButton =  TextRectNode(parent = self.divNodelobbyMenue, 
                                   pos = (self.divNodelobbyMenue.size[0]/2.4,0),
                                   href = "Overlay1.png",
                                   size = avg.Point2D(2*(self.divNodelobbyMenue.size[0]/2- self.divNodelobbyMenue.size[0]/2.4), self.divNodelobbyMenue.size[1]*0.14))
        self.backButton.addTextForBackButton("Back")
        
        self.teamOne = TextRectNode(parent = self.divNodelobbyMenue, 
                                   pos = (0,self.divNodelobbyMenue.size[1]*0.07+self.divNodelobbyMenue.size[1]*0.07),
                                   href = "Overlay1.png",
                                   size = avg.Point2D(self.divNodelobbyMenue.size[0]/2,self.divNodelobbyMenue.size[1]*0.15))
        self.teamOne.addText("Team 1")
        self.teamOne.setActivity(False)
        
        self.teamTwo = TextRectNode(parent = self.divNodelobbyMenue, 
                                   pos = (self.divNodelobbyMenue.size[0]/2,self.divNodelobbyMenue.size[1]*0.07+self.divNodelobbyMenue.size[1]*0.07),
                                   href = "Overlay1.png",
                                   size = avg.Point2D(self.divNodelobbyMenue.size[0]/2,self.divNodelobbyMenue.size[1]*0.15))
        self.teamTwo.addText("Team 2")
        self.teamTwo.setActivity(False)
        
        aktuelleHoehe = self.divNodelobbyMenue.size[1]*0.07+self.divNodelobbyMenue.size[1]*0.07 + self.divNodelobbyMenue.size[1]*0.15
        
#----------------------------------------------Player Felder------------------------------------------------------------------------------------------------------------------------- 
        if(self.modus == 4):
            self.firstPlayer = TextRectNode(parent = self.divNodelobbyMenue, 
                                   pos = (0,aktuelleHoehe),
                                   href = "Overlay1.png",
                                   size = avg.Point2D(self.divNodelobbyMenue.size[0]/2,self.divNodelobbyMenue.size[1]*0.35))
            self.firstPlayer.addText(self.player[0])
            
            self.secondPlayer = TextRectNode(parent = self.divNodelobbyMenue, 
                                   pos = (self.divNodelobbyMenue.size[0]/2,aktuelleHoehe),
                                   href = "Overlay1.png",
                                   size = avg.Point2D(self.divNodelobbyMenue.size[0]/2,self.divNodelobbyMenue.size[1]*0.35))
            self.secondPlayer.addText(self.player[1])
            
            aktuelleHoehe += self.divNodelobbyMenue.size[1]*0.35    
            
            self.thirdPlayer = TextRectNode(parent = self.divNodelobbyMenue, 
                                   pos = (0,aktuelleHoehe),
                                   href = "Overlay1.png",
                                   size = avg.Point2D(self.divNodelobbyMenue.size[0]/2,self.divNodelobbyMenue.size[1]*0.35))
            self.thirdPlayer.addText(self.player[2])
            
            self.forthPlayer = TextRectNode(parent = self.divNodelobbyMenue, 
                                   pos = (self.divNodelobbyMenue.size[0]/2,aktuelleHoehe),
                                   href = "Overlay1.png",
                                   size = avg.Point2D(self.divNodelobbyMenue.size[0]/2,self.divNodelobbyMenue.size[1]*0.35))
            self.forthPlayer.addText(self.player[3])
            
            self.rectNodPlayerArr = [self.firstPlayer,self.secondPlayer,self.thirdPlayer,self.forthPlayer]
            
            self.firstPlayer.connectEventHandler(avg.CURSORDOWN, avg.TOUCH,self.firstPlayer,  self.onClick )
            self.secondPlayer.connectEventHandler(avg.CURSORDOWN, avg.TOUCH,self.secondPlayer,  self.onClick )
            self.thirdPlayer.connectEventHandler(avg.CURSORDOWN, avg.TOUCH,self.thirdPlayer,  self.onClick )
            self.forthPlayer.connectEventHandler(avg.CURSORDOWN, avg.TOUCH,self.forthPlayer,  self.onClick )


#----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
            
        elif(self.modus == 2):
            self.firstPlayer = TextRectNode(parent = self.divNodelobbyMenue, 
                                   pos = (0,aktuelleHoehe),
                                   href = "Overlay1.png",
                                   size = avg.Point2D(self.divNodelobbyMenue.size[0]/2,self.divNodelobbyMenue.size[1]*0.35))
            self.firstPlayer.addText(self.player[0])
            
            self.secondPlayer = TextRectNode(parent = self.divNodelobbyMenue, 
                                   pos = (self.divNodelobbyMenue.size[0]/2,aktuelleHoehe),
                                   href = "Overlay1.png",
                                   size = avg.Point2D(self.divNodelobbyMenue.size[0]/2,self.divNodelobbyMenue.size[1]*0.35))
            self.secondPlayer.addText(self.player[1])
            
            self.rectNodPlayerArr = [self.firstPlayer,self.secondPlayer]
            
            self.firstPlayer.connectEventHandler(avg.CURSORDOWN, avg.TOUCH,self.firstPlayer,  self.onClick )
            self.secondPlayer.connectEventHandler(avg.CURSORDOWN, avg.TOUCH,self.secondPlayer,  self.onClick )

#----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------      
            
        else:
            self.firstPlayer = TextRectNode(parent = self.divNodelobbyMenue, 
                                   pos = (0,aktuelleHoehe),
                                   href = "Overlay1.png",
                                   size = avg.Point2D(self.divNodelobbyMenue.size[0]/2,self.divNodelobbyMenue.size[1]*0.35))
            self.firstPlayer.addText(self.player[0])
            
            self.secondPlayer = TextRectNode(parent = self.divNodelobbyMenue, 
                                   pos = (self.divNodelobbyMenue.size[0]/2,aktuelleHoehe),
                                   href = "Overlay1.png",
                                   size = avg.Point2D(self.divNodelobbyMenue.size[0]/2,self.divNodelobbyMenue.size[1]*0.35))
            self.secondPlayer.addText(self.player[1])
            
            aktuelleHoehe += self.divNodelobbyMenue.size[1]*0.35
            
            self.thirdPlayer = TextRectNode(parent = self.divNodelobbyMenue, 
                                   pos = (self.divNodelobbyMenue.size[0]/4,aktuelleHoehe),
                                   href = "Overlay1.png",
                                   size = avg.Point2D(self.divNodelobbyMenue.size[0]/2,self.divNodelobbyMenue.size[1]*0.35))
            self.thirdPlayer.addText(self.player[2])
            
            self.rectNodPlayerArr = [self.firstPlayer,self.secondPlayer,self.thirdPlayer]
            
            self.firstPlayer.connectEventHandler(avg.CURSORDOWN, avg.TOUCH,self.firstPlayer,  self.onClick )
            self.secondPlayer.connectEventHandler(avg.CURSORDOWN, avg.TOUCH,self.secondPlayer,  self.onClick )
            self.thirdPlayer.connectEventHandler(avg.CURSORDOWN, avg.TOUCH,self.thirdPlayer,  self.onClick )
Exemplo n.º 9
0
class LobbyMenue(object):
    
    def __init__(self, parent, modus,gui,kind):
        
#####################################################################################
#        player[0] ist immer Defender Feld 1
#        player[1] ist immer Defender Feld 2
#        player[2] ist immer Attacker fuer Team Feld1
#        player[3] ist immer Attacker fuer Team Feld2
#####################################################################################
       
        self.gui = gui
        self.typ = 0
        if(kind == 1):
            self.typ = 1
            
        self.rootNode = parent
        self.player = ["","","",""]
        self.playerIP = ["","","",""]
        self.rdyPlayer = [False,False,False,False]
        self.rectNodPlayerArr = [None,None,None,None]
        self.connectedPlayers = 0
        self.whoToSwap = -1
        self.playstyleModus = ""
        self.modus = modus
        if(self.modus==2):
            self.playstyleModus = "1vs1"
            self.player[0] = "Defender"
            self.player[1] = "Defender"
        elif(self.modus == 3):
            self.playstyleModus = "1vs1vs1"
            self.player[0] = "Defender"
            self.player[1] = "Defender"
            self.player[2] = "Attacker"
        elif(self.modus == 4):
            self.playstyleModus = "2vs2"
            self.player[0] = "Defender"
            self.player[1] = "Defender"
            self.player[2] = "Attacker"
            self.player[3] = "Attacker"
        else:
            raise SyntaxError("Falscher Modus in startlobby")
            
        
        self.divNodelobbyMenue = avg.DivNode(parent = self.rootNode, size  = self.rootNode.size, active = False)
        self.background = avg.ImageNode(parent = self.divNodelobbyMenue, 
                                        href = "Overlay1.png",
                                        pos = (0,self.divNodelobbyMenue.size[1]*0.29),  
                                        size = (self.divNodelobbyMenue.size[0],self.divNodelobbyMenue.size[1]*0.71))
         
        self.settingsImage = avg.ImageNode(parent = self.divNodelobbyMenue, 
                                           href = "Overlay1.png",
                                           pos = (0,0), 
                                           size = (self.divNodelobbyMenue.size[0],self.divNodelobbyMenue.size[1]*0.29))  
          
        self.gameName = TextRectNode(parent = self.divNodelobbyMenue, 
                                   pos = (0,self.divNodelobbyMenue.size[1]*0.07),
                                   href = "Overlay1.png",
                                   size = avg.Point2D(self.divNodelobbyMenue.size[0]/2.4,self.divNodelobbyMenue.size[1]*0.07))
        self.gameName.addTextForLobbyLine("IP:",socket.gethostbyname(socket.gethostname()))
        self.gameName.setActivity(False)
        
        self.type = TextRectNode(parent = self.divNodelobbyMenue, 
                                   pos = (0,0),
                                   href = "Overlay1.png",
                                   size = avg.Point2D(self.divNodelobbyMenue.size[0]/2.4,self.divNodelobbyMenue.size[1]*0.07))
        if(self.typ == 0):
            self.type.addTextForLobbyLine("Type:" , "Classic")
        else:
            self.type.addTextForLobbyLine("Type:" , "EqualMode")
        self.type.setActivity(False)
        
        self.playStyle = TextRectNode(parent = self.divNodelobbyMenue, 
                                   pos = (self.divNodelobbyMenue.size[0] - self.divNodelobbyMenue.size[0]/2.4 ,0),
                                   href = "Overlay1.png",
                                   size = avg.Point2D(self.divNodelobbyMenue.size[0]/2.4,self.divNodelobbyMenue.size[1]*0.07))
        self.playStyle.addTextForLobbyLine("Playstyle:" , self.playstyleModus)
        self.playStyle.setActivity(False)
        
        self.numberPlayers = TextRectNode(parent = self.divNodelobbyMenue, 
                                   pos = (self.divNodelobbyMenue.size[0] - self.divNodelobbyMenue.size[0]/2.4,self.divNodelobbyMenue.size[1]*0.07),
                                   href = "Overlay1.png",
                                   size = avg.Point2D(self.divNodelobbyMenue.size[0]/2.4,self.divNodelobbyMenue.size[1]*0.07))
        
        self.numberPlayers.addTextForLobbyLine("Players connected:", str(self.connectedPlayers)+"/"+ str(self.modus))
        self.numberPlayers.setActivity(False)
        
        self.backButton =  TextRectNode(parent = self.divNodelobbyMenue, 
                                   pos = (self.divNodelobbyMenue.size[0]/2.4,0),
                                   href = "Overlay1.png",
                                   size = avg.Point2D(2*(self.divNodelobbyMenue.size[0]/2- self.divNodelobbyMenue.size[0]/2.4), self.divNodelobbyMenue.size[1]*0.14))
        self.backButton.addTextForBackButton("Back")
        
        self.teamOne = TextRectNode(parent = self.divNodelobbyMenue, 
                                   pos = (0,self.divNodelobbyMenue.size[1]*0.07+self.divNodelobbyMenue.size[1]*0.07),
                                   href = "Overlay1.png",
                                   size = avg.Point2D(self.divNodelobbyMenue.size[0]/2,self.divNodelobbyMenue.size[1]*0.15))
        self.teamOne.addText("Team 1")
        self.teamOne.setActivity(False)
        
        self.teamTwo = TextRectNode(parent = self.divNodelobbyMenue, 
                                   pos = (self.divNodelobbyMenue.size[0]/2,self.divNodelobbyMenue.size[1]*0.07+self.divNodelobbyMenue.size[1]*0.07),
                                   href = "Overlay1.png",
                                   size = avg.Point2D(self.divNodelobbyMenue.size[0]/2,self.divNodelobbyMenue.size[1]*0.15))
        self.teamTwo.addText("Team 2")
        self.teamTwo.setActivity(False)
        
        aktuelleHoehe = self.divNodelobbyMenue.size[1]*0.07+self.divNodelobbyMenue.size[1]*0.07 + self.divNodelobbyMenue.size[1]*0.15
        
#----------------------------------------------Player Felder------------------------------------------------------------------------------------------------------------------------- 
        if(self.modus == 4):
            self.firstPlayer = TextRectNode(parent = self.divNodelobbyMenue, 
                                   pos = (0,aktuelleHoehe),
                                   href = "Overlay1.png",
                                   size = avg.Point2D(self.divNodelobbyMenue.size[0]/2,self.divNodelobbyMenue.size[1]*0.35))
            self.firstPlayer.addText(self.player[0])
            
            self.secondPlayer = TextRectNode(parent = self.divNodelobbyMenue, 
                                   pos = (self.divNodelobbyMenue.size[0]/2,aktuelleHoehe),
                                   href = "Overlay1.png",
                                   size = avg.Point2D(self.divNodelobbyMenue.size[0]/2,self.divNodelobbyMenue.size[1]*0.35))
            self.secondPlayer.addText(self.player[1])
            
            aktuelleHoehe += self.divNodelobbyMenue.size[1]*0.35    
            
            self.thirdPlayer = TextRectNode(parent = self.divNodelobbyMenue, 
                                   pos = (0,aktuelleHoehe),
                                   href = "Overlay1.png",
                                   size = avg.Point2D(self.divNodelobbyMenue.size[0]/2,self.divNodelobbyMenue.size[1]*0.35))
            self.thirdPlayer.addText(self.player[2])
            
            self.forthPlayer = TextRectNode(parent = self.divNodelobbyMenue, 
                                   pos = (self.divNodelobbyMenue.size[0]/2,aktuelleHoehe),
                                   href = "Overlay1.png",
                                   size = avg.Point2D(self.divNodelobbyMenue.size[0]/2,self.divNodelobbyMenue.size[1]*0.35))
            self.forthPlayer.addText(self.player[3])
            
            self.rectNodPlayerArr = [self.firstPlayer,self.secondPlayer,self.thirdPlayer,self.forthPlayer]
            
            self.firstPlayer.connectEventHandler(avg.CURSORDOWN, avg.TOUCH,self.firstPlayer,  self.onClick )
            self.secondPlayer.connectEventHandler(avg.CURSORDOWN, avg.TOUCH,self.secondPlayer,  self.onClick )
            self.thirdPlayer.connectEventHandler(avg.CURSORDOWN, avg.TOUCH,self.thirdPlayer,  self.onClick )
            self.forthPlayer.connectEventHandler(avg.CURSORDOWN, avg.TOUCH,self.forthPlayer,  self.onClick )


#----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
            
        elif(self.modus == 2):
            self.firstPlayer = TextRectNode(parent = self.divNodelobbyMenue, 
                                   pos = (0,aktuelleHoehe),
                                   href = "Overlay1.png",
                                   size = avg.Point2D(self.divNodelobbyMenue.size[0]/2,self.divNodelobbyMenue.size[1]*0.35))
            self.firstPlayer.addText(self.player[0])
            
            self.secondPlayer = TextRectNode(parent = self.divNodelobbyMenue, 
                                   pos = (self.divNodelobbyMenue.size[0]/2,aktuelleHoehe),
                                   href = "Overlay1.png",
                                   size = avg.Point2D(self.divNodelobbyMenue.size[0]/2,self.divNodelobbyMenue.size[1]*0.35))
            self.secondPlayer.addText(self.player[1])
            
            self.rectNodPlayerArr = [self.firstPlayer,self.secondPlayer]
            
            self.firstPlayer.connectEventHandler(avg.CURSORDOWN, avg.TOUCH,self.firstPlayer,  self.onClick )
            self.secondPlayer.connectEventHandler(avg.CURSORDOWN, avg.TOUCH,self.secondPlayer,  self.onClick )

#----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------      
            
        else:
            self.firstPlayer = TextRectNode(parent = self.divNodelobbyMenue, 
                                   pos = (0,aktuelleHoehe),
                                   href = "Overlay1.png",
                                   size = avg.Point2D(self.divNodelobbyMenue.size[0]/2,self.divNodelobbyMenue.size[1]*0.35))
            self.firstPlayer.addText(self.player[0])
            
            self.secondPlayer = TextRectNode(parent = self.divNodelobbyMenue, 
                                   pos = (self.divNodelobbyMenue.size[0]/2,aktuelleHoehe),
                                   href = "Overlay1.png",
                                   size = avg.Point2D(self.divNodelobbyMenue.size[0]/2,self.divNodelobbyMenue.size[1]*0.35))
            self.secondPlayer.addText(self.player[1])
            
            aktuelleHoehe += self.divNodelobbyMenue.size[1]*0.35
            
            self.thirdPlayer = TextRectNode(parent = self.divNodelobbyMenue, 
                                   pos = (self.divNodelobbyMenue.size[0]/4,aktuelleHoehe),
                                   href = "Overlay1.png",
                                   size = avg.Point2D(self.divNodelobbyMenue.size[0]/2,self.divNodelobbyMenue.size[1]*0.35))
            self.thirdPlayer.addText(self.player[2])
            
            self.rectNodPlayerArr = [self.firstPlayer,self.secondPlayer,self.thirdPlayer]
            
            self.firstPlayer.connectEventHandler(avg.CURSORDOWN, avg.TOUCH,self.firstPlayer,  self.onClick )
            self.secondPlayer.connectEventHandler(avg.CURSORDOWN, avg.TOUCH,self.secondPlayer,  self.onClick )
            self.thirdPlayer.connectEventHandler(avg.CURSORDOWN, avg.TOUCH,self.thirdPlayer,  self.onClick )

    #zum swappen der spieler
    def onClick(self,event):
        if(self.whoToSwap == -1):
            if(self.modus == 2):
                if(event.node == self.firstPlayer):
                    self.whoToSwap = 0
                elif(event.node == self.secondPlayer):
                    self.whoToSwap = 1
                else:
                    raise SyntaxError ("Wtf")
                
            elif(self.modus == 3):
                if(event.node == self.firstPlayer):
                    self.whoToSwap = 0
                elif(event.node == self.secondPlayer):
                    self.whoToSwap = 1
                elif(event.node == self.thirdPlayer):
                    self.whoToSwap = 2
                else:
                    raise SyntaxError ("Wtf")
                
            elif(self.modus == 4):
                if(event.node == self.firstPlayer):
                    self.whoToSwap = 0
                elif(event.node == self.secondPlayer):
                    self.whoToSwap = 1
                elif(event.node == self.thirdPlayer):
                    self.whoToSwap = 2
                elif(event.node == self.forthPlayer):
                    self.whoToSwap = 3
                else:
                    raise SyntaxError ("Wtf")
            else:
                raise SyntaxError ("Wtf")
        else:
            if(self.modus == 2):
                if(event.node == self.firstPlayer):
                    self.swapPlayer(self.whoToSwap, 0)
                    self.whoToSwap = -1
                elif(event.node == self.secondPlayer):
                    self.swapPlayer(self.whoToSwap, 1)
                    self.whoToSwap = -1
                else:
                    raise SyntaxError ("Wtf")
                
            elif(self.modus == 3):
                if(event.node == self.firstPlayer):
                    self.swapPlayer(self.whoToSwap, 0)
                    self.whoToSwap = -1
                elif(event.node == self.secondPlayer):
                    self.swapPlayer(self.whoToSwap, 1)
                    self.whoToSwap = -1
                elif(event.node == self.thirdPlayer):
                    self.swapPlayer(self.whoToSwap, 2)
                    self.whoToSwap = -1
                else:
                    raise SyntaxError ("Wtf")
                
            elif(self.modus == 4):
                if(event.node == self.firstPlayer):
                    self.swapPlayer(self.whoToSwap, 0)
                    self.whoToSwap = -1
                elif(event.node == self.secondPlayer):
                    self.swapPlayer(self.whoToSwap, 1)
                    self.whoToSwap = -1
                elif(event.node == self.thirdPlayer):
                    self.swapPlayer(self.whoToSwap, 2)
                    self.whoToSwap =-1
                elif(event.node == self.forthPlayer):
                    self.swapPlayer(self.whoToSwap, 3)
                    self.whoToSwap = -1
                else:
                    raise SyntaxError ("Wtf")
            else:
                raise SyntaxError ("Wtf")
        
        
        
    # tauscht die spieler (verschiedene arrays muessen umbeschrieben werden)   
    def swapPlayer(self,x, y ):# angefangen bei 0 bis 3
        if(x == y):
            pass
        else:
            tmp = self.player[x]
            self.player[x] = self.player[y]
            self.player[y] = tmp
            
            tmp = self.playerIP[x]
            self.playerIP[x] = self.playerIP[y]
            self.playerIP[y] = tmp
            self.rdyPlayer = [False,False,False,False]
            
            self.rectNodPlayerArr[x].updateTextNode(self.player[x])
            self.rectNodPlayerArr[y].updateTextNode(self.player[y])
            self.gui.sendMsgToAll("notRdy")
    
    # setzt rdy wert eines spielers auf false
    def playerNotRdyAnylonge(self,ip):
        i = 0
        for i in range(self.modus):
            if(ip == self.playerIP[i]):
                self.rdyPlayer[i] = False
                break
            
    # setzt rdy wert eines spieler auf true und startet counter falls alle fertig
    def playerGotRdy(self,ip):
        i = -1
        for k in self.playerIP:
            i+=1
            if(k == ip):
                self.rdyPlayer[i] = True
                break
        p = True
        for b in range(0,self.modus):
            p = (p) and (self.rdyPlayer[b])
        if p:
            self.gui.gameCounter()
            
    # setzt den spieler auf notrdy (false)        
    def playerStopBeingRdy(self,ip):
        i = 0
        for k in self.playerIP:
            if(k == ip):
                break
            i+=1
        self.rdyPlayer[i] = False
        
    # updatet die array wenn spieler das spiel verlaesst     
    def updatePlayerLeft(self, ip):
        self.connectedPlayers-=1
        self.numberPlayers.updateTextForLobbyLine( "Players connected:", str(self.connectedPlayers)+"/"+ str(self.modus))
        i = 0
        b = False
        for j in range(self.modus):
            self.rdyPlayer[j] = False
        for i in range(self.modus):
            if(self.playerIP[i] == ip):
                if((i+1 < self.modus) & ((self.player[i+1] != "Attacker") & (self.player[i+1] != "Defender")) ):
                    self.player[i] = self.player[i+1]
                    self.playerIP[i] = self.playerIP[i+1]
                    (self.rectNodPlayerArr[i]).updateTextNode(self.player[i]) 
                else:
                    if((i == 0) | (i == 1)):
                        self.player[i] = "Defender"
                        self.playerIP[i] = ""
                        (self.rectNodPlayerArr[i]).updateTextNode("Defender") 
                    else:
                        self.player[i] = "Attacker"
                        self.playerIP[i] = ""
                        (self.rectNodPlayerArr[i]).updateTextNode("Attacker")
                b = True
            else:
                if(b):
                    if((i+1 < self.modus)&((self.player[i+1] != "Attacker") & (self.player[i+1] != "Defender"))):
                        self.player[i] = self.player[i+1]
                        self.playerIP[i] = self.playerIP[i+1]
                        (self.rectNodPlayerArr[i]).updateTextNode(self.player[i]) 
                    else:
                        if((i == 0) | (i == 1)):
                            self.player[i] = "Defender"
                            self.playerIP[i] = ""
                            (self.rectNodPlayerArr[i]).updateTextNode("Defender") 
                        else:
                            self.player[i] = "Attacker"
                            self.playerIP[i] = ""
                            (self.rectNodPlayerArr[i]).updateTextNode("Attacker")
           
        self.gui.sendMsgToAll("notRdy")
        
    # updatet die anzahl der spieler    
    def updateJoinedPlayerNumber(self, ip, name):
        if(self.connectedPlayers+1>self.modus):
            pass
        else:
            i = 0
            for i in range (self.modus):
                if(self.playerIP[i] == ""):
                    self.numberPlayers.updateTextForLobbyLine( "Players connected:", str(self.connectedPlayers+1)+"/"+ str(self.modus))
                    self.player[i] = name
                    (self.rectNodPlayerArr[i]).updateTextNode(name)
                    self.playerIP[i] = ip
                    self.connectedPlayers+=1
                    break