def MainLoop(running, keyMapP1, keyMapP2, gui, currentMatch): actions = None while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False break if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE: running = False pygame.display.set_mode((700, 400)) break if event.type == pygame.JOYBUTTONDOWN: button = parseButton(event) name = event.joy print("Event: " + str(event)) if name == 1: actions = keyMapP1 elif name == 0: actions = keyMapP2 if actions and button in actions and actions[ button] is not None: actions[button](name, event) pygame.display.update() gui.update() gui.draw() gui.clock.tick(30)
def listenLoop(player1, player2): done = True while done: for event in pygame.event.get(): joy = event.joy button = parseButton(event) keyMapping if joy == "0": keyMapping = player1.keyMapping else: keyMapping = player2.keyMapping print(event) print(joy) if button in keyMapping and keyMapping[button] is not None: if event.joy == "0": keyMapping[button](player1.name, event) else: keyMapping[button](player2.name, event)
def GUI_getPlayUntil(keyMapping): setupPromptOne = GUI() promptText = TextObject("prompt", "Play Until", 350, 25) elevenText = TextObject("eleven", "11", 200, 125, 100) twentyoneText = TextObject("twentyone", "21", 500, 125, 100) lshoulderText = TextObject("lshoulder", "-->", 500, 225, 125) rshoulderText = TextObject("rshoulder", "<--", 200, 225, 125) setupPromptOne.addGUIObject(promptText) setupPromptOne.addGUIObject(elevenText) setupPromptOne.addGUIObject(twentyoneText) setupPromptOne.addGUIObject(rshoulderText) setupPromptOne.addGUIObject(lshoulderText) setupPromptOne.setupGUI() running = True while running: for event in pygame.event.get(): if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE: running = False pygame.quit() break if event.type == pygame.JOYBUTTONDOWN: button = parseButton(event) if button in keyMapping and keyMapping[button] is not None: keyMapping[button](event) running = False break pygame.display.update() setupPromptOne.update() setupPromptOne.draw() setupPromptOne.clock.tick(30) setupPromptOne.objects = []
def GUI_gameOver(keyMapping, winner, score): setupGUI = GUI() winPrompt = winner + " wins!" winnerText = TextObject("winner", winPrompt, 350, 0, 75) promptText = TextObject("prompt", "Play Again?", 350, 125) elevenText = TextObject("left", "Yes", 200, 200, 75) twentyoneText = TextObject("right", "No", 500, 200, 75) rshoulderText = TextObject("rshoulder", "-->", 500, 275, 100) lshoulderText = TextObject("lshoulder", "<--", 200, 275, 100) setupGUI.addGUIObject(winnerText) setupGUI.addGUIObject(promptText) setupGUI.addGUIObject(elevenText) setupGUI.addGUIObject(twentyoneText) setupGUI.addGUIObject(rshoulderText) setupGUI.addGUIObject(lshoulderText) setupGUI.setupGUI() running = True while running: for event in pygame.event.get(): if event.type == pygame.JOYBUTTONDOWN: button = parseButton(event) if button in keyMapping and keyMapping[button] is not None: keyMapping[button](event) running = False break pygame.display.update() setupGUI.update() setupGUI.draw() setupGUI.clock.tick(30) setupGUI.objects = []
def GUI_mainLoop(firstServer, numOfServes): mainLoop = GUI() player1 = Player("player1", 0, 200, 25) player2 = Player("player2", 1, 500, 25) currentMatch = Match(player1, player2, firstServer, numOfServes, 5) player1.textFunc = currentMatch.getScore player2.textFunc = currentMatch.getScore player1ScoreStr = str(currentMatch.score['player1']) player2ScoreStr = str(currentMatch.score['player2']) player1Score = TextObject("scorePlayer1", player1ScoreStr, 200, 25, 100) player2Score = TextObject("scorePlayer2", player2ScoreStr, 500, 25, 100) serveIndicatorPlayer1 = TextObject("servePlayer1", "-->", 525, 200, 125) serveIndicatorPlayer2 = TextObject("servePlayer2", "<--", 175, 200, 125) servingColor = (255,117,73) notServingColor = (200,199,211) keyMapping = initMapping() keyMapping["rshoulder"] = lambda x: currentMatch.scorePoint(x) mainLoop.addGUIObject(player1Score) mainLoop.addGUIObject(player2Score) mainLoop.addGUIObject(serveIndicatorPlayer1) mainLoop.addGUIObject(serveIndicatorPlayer2) mainLoop.setupGUI() running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False break; if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE: running = False pygame.display.set_mode((700,400)) break; if event.type == pygame.JOYBUTTONDOWN: button = parseButton(event) if button in keyMapping and keyMapping[button] is not None: print(event) if event.joy is not None: score = None if event.joy == 0: score = keyMapping[button]("player1") elif event.joy == 1: score = keyMapping[button]("player2") player1Score.text = str(score['player1']) player2Score.text = str(score['player2']) if(currentMatch.currentServer == "player1"): serveIndicatorPlayer1.color = servingColor serveIndicatorPlayer2.color = notServingColor elif(currentMatch.currentServer == "player2"): serveIndicatorPlayer1.color = notServingColor serveIndicatorPlayer2.color = servingColor print(score) pygame.display.update() mainLoop.update() mainLoop.draw() mainLoop.clock.tick(30) mainLoop.objects = []