def HighScoreScreen(GetGameList, GetScoreList): # text and button initalization text_display = TextDisplay() button_display = ButtonDisplay() # get games and score list gamesList, getScoreList = GetGameList(), GetScoreList() running = True while running: click = False screen.fill((220, 220, 220)) # create back and score viewing buttons back = button_display.add_button_to_screen(screen, 0, 0, 100, 50, (177, 0, 0)) # draw text for buttons text_display.add_to_screen(screen, 30, "Back", 33, 28, BLACK, "freesansbold.ttf") text_display.add_to_screen(screen, 30, "HighScore View", SCREEN_WIDTH / 2, 100, BLACK, "freesansbold.ttf") # draw text for scores of each game, repeat for each game width, height = 400, 150 for game in getScoreList: text_display.add_to_screen( screen, 30, "GAME: " + game + ", USER: "******", SCORE: " + str(list((getScoreList[game]).values())[0]), width, height, BLACK, "freesansbold.ttf") height += 50 events = pygame.event.get() for event in events: # Did the user hit a key? if event.type == KEYDOWN: # Was it the Escape key? If so, stop the loop. if event.key == K_ESCAPE: return # Did the user click the window close button? If so, stop the loop. if event.type == QUIT: pygame.quit() sys.exit() # if clicked, set click flag to true if event.type == MOUSEBUTTONDOWN: # Left click if event.button == 1: click = True if event.type == KEYDOWN: if event.key == K_ESCAPE: running = False # Cursor location mx, my = pygame.mouse.get_pos() # back pressed if back.collidepoint((mx, my)): if click: print("back button pressed") running = False return "back_button" pygame.display.update()
BLACK = (0, 0, 0) RED = (255, 0, 0) # Create the screen object # The size is determined by the constant SCREEN_WIDTH and SCREEN_HEIGHT screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT)) '''INITIALIZE THE GAME''' pygame.init() pygame.font.init() myfont = pygame.font.SysFont('arial', 30) pygame.display.set_caption('3A04 Game Demo') # Used for creating/displaying buttons and text text_display = TextDisplay() button_display = ButtonDisplay() def displayError(): text_display.add_to_screen(screen, 20, 'LOGIN FAILED', SCREEN_WIDTH / 2.05, (SCREEN_HEIGHT / 1.1), RED, "arial") pygame.display.flip() # Login #def login( myfont, SCREEN_WIDTH, SCREEN_HEIGHT, screen, firebase_instance, db): def loginScreen(login_func): # Logos logo_icon = pygame.image.load('../assets/readyplayerone.jpg') logo_icon = pygame.transform.scale(logo_icon, (351, 168)) # create input boxes
def registerScreen(register_func): # Logos logo_icon = pygame.image.load('../assets/readyplayerone.jpg') logo_icon = pygame.transform.scale(logo_icon, (351, 168)) # Used for creating/displaying buttons and text text_display = TextDisplay() button_display = ButtonDisplay() # create input boxes username_box = InputBox(SCREEN_WIDTH / 2.8, SCREEN_HEIGHT / 2, screen) password_box = InputBox(SCREEN_WIDTH / 2.8, SCREEN_HEIGHT / 1.5, screen) clock = pygame.time.Clock() # background screen.fill((220, 220, 220)) while True: # draw game logo screen.blit(logo_icon, (195, 70)) # Draw buttons enter = button_display.add_button_to_screen(screen, SCREEN_WIDTH / 2.8, SCREEN_HEIGHT / 1.3, 200, 50, (0, 120, 00)) # Draw text text_display.add_to_screen(screen, 30, 'Register Screen', SCREEN_WIDTH / 2, SCREEN_HEIGHT / 20, BLACK, "arial") text_display.add_to_screen(screen, 30, 'Enter email', SCREEN_WIDTH / 2.1, (SCREEN_HEIGHT / 2) - 20, BLACK, "arial") text_display.add_to_screen(screen, 30, 'Enter password', SCREEN_WIDTH / 2.1, (SCREEN_HEIGHT / 2) + 72, BLACK, "arial") text_display.add_to_screen(screen, 30, 'Enter!', SCREEN_WIDTH / 2.1, (SCREEN_HEIGHT / 1.28) + 14, BLACK, "arial") # if made it past the previous functions, that means click is now false and the functions were terminated. click = False # Look at every event in the queue events = pygame.event.get() for event in events: # handle every event username_box.handle_event(event) password_box.handle_event(event) # Did the user hit a key? if event.type == KEYDOWN: # Was it the Escape key? If so, stop the loop. if event.key == K_ESCAPE: return # Did the user click the window close button? If so, stop the loop. if event.type == QUIT: pygame.quit() sys.exit() # if clicked, set click flag to true if event.type == MOUSEBUTTONDOWN: # Left click if event.button == 1: click = True # draw input boxes username_box.draw(screen, (SCREEN_WIDTH / 2.8, SCREEN_HEIGHT / 2)) password_box.draw(screen, (SCREEN_WIDTH / 2.8, SCREEN_HEIGHT / 1.5)) # get cursor location mx, my = pygame.mouse.get_pos() if enter.collidepoint((mx, my)): if click: print("Registration username: "******"Registration password: "******"arial") pygame.display.flip() pygame.display.flip() clock.tick(60)
def pauseScreen(): # Used for creating/displaying buttons and text text_display = TextDisplay() button_display = ButtonDisplay() # background screen.fill((220, 220, 220)) while True: # draw game logo screen.blit(logo_icon, (195, 70)) # Draw & create buttons quit = button_display.add_button_to_screen(screen, SCREEN_WIDTH / 1.9, SCREEN_HEIGHT / 1.75, 200, 50, RED) resume = button_display.add_button_to_screen(screen, SCREEN_WIDTH / 5.4, SCREEN_HEIGHT / 1.75, 200, 50, (0, 128, 0)) instructions = button_display.add_button_to_screen( screen, SCREEN_WIDTH / 2.8, (SCREEN_HEIGHT / 1.75) + 68, 200, 50, (255, 127, 80)) # Draw text text_display.add_to_screen(screen, 30, 'GAME PAUSED', SCREEN_WIDTH / 2.15, SCREEN_HEIGHT / 20, BLACK, "arial") text_display.add_to_screen(screen, 30, 'Resume', SCREEN_WIDTH / 3.2, (SCREEN_HEIGHT / 1.75) + 18, BLACK, "arial") text_display.add_to_screen(screen, 30, 'Quit', SCREEN_WIDTH / 1.54, (SCREEN_HEIGHT / 1.75) + 18, BLACK, "arial") text_display.add_to_screen(screen, 30, 'Instructions', SCREEN_WIDTH / 2.08, (SCREEN_HEIGHT / 1.75) + 88, BLACK, "arial") # if made it past the previous functions, that means click is now false and the functions were terminated. click = False # Look at every event in the queue events = pygame.event.get() for event in events: # Did the user hit a key? if event.type == KEYDOWN: # Was it the Escape key? If so, stop the loop. if event.key == K_ESCAPE: pygame.quit() sys.exit() # Did the user click the window close button? If so, stop the loop. if event.type == QUIT: pygame.quit() sys.exit() # if clicked, set click flag to true if event.type == MOUSEBUTTONDOWN: # Left click if event.button == 1: click = True # get cursor location mx, my = pygame.mouse.get_pos() # if login button pressed if resume.collidepoint((mx, my)): if click: print("resume") return "resume" # if login button pressed elif instructions.collidepoint((mx, my)): if click: print("instruction") return "instruction" # if register button pressed elif quit.collidepoint((mx, my)): if click: print("quit") return "quit" pygame.display.update() #if __name__ == '__main__': # pauseScreen()
def GameSelectionScreen(): # instantiate button logos, better to make class button images after! flappybird = pygame.image.load('../assets/flappybird.png') dodge = pygame.image.load('../assets/dodge.png') basketball = pygame.image.load('../assets/ball.png') fruitninja = pygame.image.load('../assets/fruitninja.png') spaceinvaders = pygame.image.load('../assets/spaceinvaders.png') # scale the images down flappybird = pygame.transform.scale(flappybird, (100, 100)) dodge = pygame.transform.scale(dodge, (160, 100)) basketball = pygame.transform.scale(basketball, (100, 100)) fruitninja = pygame.transform.scale(fruitninja, (140, 140)) spaceinvaders = pygame.transform.scale(spaceinvaders, (140, 140)) # change their location flappybird_rect = flappybird.get_rect() flappybird_rect.x, flappybird_rect.y = 100, 200 dodge_rect = dodge.get_rect() dodge_rect.x, dodge_rect.y = 300, 200 basketball_rect = basketball.get_rect() basketball_rect.x, basketball_rect.y = 200, 370 fruitninja_rect = fruitninja.get_rect() fruitninja_rect.x, fruitninja_rect.y = 600, 200 spaceinvaders_rect = spaceinvaders.get_rect() spaceinvaders_rect.x, spaceinvaders_rect.y = 470, 370 text_display = TextDisplay() button_display = ButtonDisplay() running = True while running: click = False screen.fill((220, 220, 220)) # create back and score viewing buttons back = button_display.add_button_to_screen(screen, 0, 0, 100, 50, (177, 0, 0)) score_button = button_display.add_button_to_screen( screen, SCREEN_WIDTH - 100, 0, 100, 50, (255, 255, 0)) # draw text text_display.add_to_screen(screen, 30, "Back", 33, 28, BLACK, "freesansbold.ttf") text_display.add_to_screen(screen, 30, "Score", SCREEN_WIDTH - 48, 28, BLACK, "freesansbold.ttf") text_display.add_to_screen(screen, 30, "Main Menu - Game Selection", SCREEN_WIDTH / 2, 100, BLACK, "freesansbold.ttf") # draw button logos screen.blit(flappybird, flappybird_rect) screen.blit(dodge, dodge_rect) screen.blit(basketball, basketball_rect) screen.blit(fruitninja, fruitninja_rect) screen.blit(spaceinvaders, spaceinvaders_rect) events = pygame.event.get() for event in events: # Did the user hit a key? if event.type == KEYDOWN: # Was it the Escape key? If so, stop the loop. if event.key == K_ESCAPE: return # Did the user click the window close button? If so, stop the loop. if event.type == QUIT: pygame.quit() sys.exit() # if clicked, set click flag to true if event.type == MOUSEBUTTONDOWN: # Left click if event.button == 1: click = True if event.type == KEYDOWN: if event.key == K_ESCAPE: running = False # Cursor location mx, my = pygame.mouse.get_pos() # back pressed if back.collidepoint((mx, my)): if click: print("back button pressed") running = False return "back_button" elif score_button.collidepoint((mx, my)): if click: print("score button pressed") return "score_button" # return name of game pressed to controller elif basketball_rect.collidepoint((mx, my)): if click: print("Basketball Shootout selected") return "BasketballShootOut" elif dodge_rect.collidepoint((mx, my)): if click: print("Dodge selected") return "Dodge" elif flappybird_rect.collidepoint((mx, my)): if click: print("FlappyBird selected") return "FlappyBird" elif fruitninja_rect.collidepoint((mx, my)): if click: print("fruitninja_rect selected") return "fruitninja" elif spaceinvaders_rect.collidepoint((mx, my)): if click: print("spaceinvaders_rect selected") return "SpaceInvaders" pygame.display.update()
def button_choice(): # Used for creating/displaying buttons and text text_display = TextDisplay() button_display = ButtonDisplay() # background screen.fill((220, 220, 220)) while True: # draw game logo screen.blit(logo_icon, (195, 70)) # Draw & create buttons register_button = button_display.add_button_to_screen( screen, SCREEN_WIDTH / 1.9, SCREEN_HEIGHT / 1.75, 200, 50, (0, 32, 255)) login_button = button_display.add_button_to_screen( screen, SCREEN_WIDTH / 5.4, SCREEN_HEIGHT / 1.75, 200, 50, (0, 120, 00)) # Draw text text_display.add_to_screen(screen, 30, 'Login', SCREEN_WIDTH / 3.2, (SCREEN_HEIGHT / 1.75) + 18, BLACK, "arial") text_display.add_to_screen(screen, 30, 'Register', SCREEN_WIDTH / 1.54, (SCREEN_HEIGHT / 1.75) + 18, BLACK, "arial") # if made it past the previous functions, that means click is now false and the functions were terminated. click = False # Look at every event in the queue events = pygame.event.get() for event in events: # Did the user hit a key? if event.type == KEYDOWN: # Was it the Escape key? If so, stop the loop. if event.key == K_ESCAPE: pygame.quit() sys.exit() # Did the user click the window close button? If so, stop the loop. if event.type == QUIT: pygame.quit() sys.exit() # if clicked, set click flag to true if event.type == MOUSEBUTTONDOWN: # Left click if event.button == 1: click = True # get cursor location mx, my = pygame.mouse.get_pos() # if login button pressed if login_button.collidepoint((mx, my)): if click: return "Login" # if register button pressed elif register_button.collidepoint((mx, my)): if click: return "Register" pygame.display.update()