示例#1
0
文件: GUI.py 项目: semone/simon-says
class GUI():
    def __init__(self, screen, backgroundColor):
        self.screen  = screen
        self.backgroundColor =backgroundColor
        self.menu = py.image.load("images/menu.png")

        self.easyButton = Button("images/easyButton.png","images/easyButtonHover.png", self.screen)
        self.mediumButton = Button("images/mediumButton.png","images/mediumButtonHover.png", self.screen)
        self.hardButton = Button("images/hardButton.png", "images/hardButtonHover.png",  self.screen)
        self.homeButton = Button("images/homeButton.png", "images/homeButtonHover.png", self.screen)
        self.infoButton = Button("images/info.png", "images/infoHover.png", self.screen)

    def initScreenBuild(self):
        logo = py.image.load("images/trainLogo.png")
        
        self.screen.fill(self.backgroundColor)
        self.screen.blit(logo,(200,120))
        py.draw.rect(self.screen, (255, 255, 255), py.Rect(750, 0, 250, 650))
        self.screen.blit(self.menu,(812,30))
        self.easyButton.placeButton(823,200)
        self.mediumButton.placeButton(823, 250)
        self.hardButton.placeButton(823, 300)
        self.infoButton.placeButton(823,400)

    def levelScreenBuild(self, button):
        self.screen.fill((self.backgroundColor))
        py.draw.rect(self.screen, (255, 255, 255), py.Rect(750, 0, 250, 650))
        self.screen.blit(self.menu,(812,30))
        levelImage = py.image.load(button.name)
        self.screen.blit(levelImage, (823,200))
        self.homeButton.placeButton(823,570)

    def gameOverBuild(self, count):
        #Play fail sound on build
        py.mixer.music.load('sound/fail_trombone_01.ogg')
        py.mixer.music.play(0)
        
        gameOverIm = py.image.load("images/gameover.png")
        playAgain = py.image.load("images/playagain.png")
        
        #Setup and render score
        scoreFont = py.font.Font("League Gothic.otf", 50)
        score = scoreFont.render("You managed " + str(count) + " rounds\n" , True, (0, 0, 0))
    
        self.screen.fill(self.backgroundColor)
        self.screen.blit(gameOverIm,(200,30))
        self.screen.blit(score, (240, 500))
        py.draw.rect(self.screen, (255, 255, 255), py.Rect(750, 0, 250, 650))
        self.screen.blit(playAgain,(812,100))
        self.easyButton.placeButton(823,200)
        self.mediumButton.placeButton(823, 250)
        self.hardButton.placeButton(823, 300)
        self.homeButton.placeButton(823,570)

    def infoScreenBuild(self):
        fontHeadLine = py.font.Font("League Gothic.otf", 36)
        headLine = fontHeadLine.render("This is how you play the game:", True, (0, 0, 0))

        fontText = py.font.SysFont("monospacems", 26)

        text1 = fontText.render("Do as the computer. Watch the sequence the computer plays and then repeat", True, (0, 0, 0))
        text2 = fontText.render("the same sequence, easy huh? When the computer plays you will see a wait ", True, (0, 0, 0))
        text3 = fontText.render("sign,a go! sign will be shown when its your turn. There are three different ", True, (0, 0, 0))
        text4 = fontText.render("levels to be played, Easy, Medium and Hard. The different levels have", True, (0, 0, 0))
        text5 = fontText.render("different amount of squares that can blink.", True, (0, 0, 0))
        text6 = fontText.render("No high score function is implemented yet, so for now you can just train your brain!", True, (0, 0, 0))
        
        py.draw.rect(self.screen, self.backgroundColor, py.Rect(0, 0, 750, 650))
        py.draw.rect(self.screen, (255, 255, 255), py.Rect(750, 0, 250, 650))
        self.screen.blit(self.menu,(812,30))
        self.screen.blit(headLine, (60, 150))
        self.screen.blit(text1, (60, 250))
        self.screen.blit(text2, (60, 275))
        self.screen.blit(text3, (60, 300))
        self.screen.blit(text4, (60, 325))
        self.screen.blit(text5, (60, 350))
        self.screen.blit(text6, (60, 400))
    
        self.homeButton.placeButton(823,570)