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")
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")
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")
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")
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")
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)
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
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 )
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