Ejemplo n.º 1
0
class MenuScreen:

    def __init__(self):
        #Loading
        self.up_img = pygame.image.load(os.path.join('assets', 'button_up.png'))
        self.down_img = pygame.image.load(os.path.join('assets', 'button_down.png'))
        self.font = pygame.font.Font(None, 30)

        #Background
        self.background = pygame.image.load(os.path.join('assets', 'menu_background.png'))
        
        #Play button
        y = 45
        self.play_button = Button(self.up_img, self.down_img, pygame.Rect(200, 45, self.up_img.get_width(), self.up_img.get_height()))
        self.play_button.set_text(self.font, "Play")

        y += self.play_button.rect.height + 16
        self.songs_button = Button(self.up_img, self.down_img, pygame.Rect(200, y, self.up_img.get_width(), self.up_img.get_height()))
        self.songs_button.set_text(self.font, "Songs")

        y += self.songs_button.rect.height + 16
        self.creds_button = Button(self.up_img, self.down_img, pygame.Rect(200, y, self.up_img.get_width(), self.up_img.get_height()))
        self.creds_button.set_text(self.font, "Credit")    
    
    def update(self):
        pass

    def draw(self, surface):
        surface.blit(self.background, pygame.Rect(0,0,320,240))
        self.play_button.draw(surface)
        self.songs_button.draw(surface)
        self.creds_button.draw(surface)

    def OnMouseUp(self, pos):
        self.play_button.OnMouseUp(pos)
        self.songs_button.OnMouseUp(pos)
        self.creds_button.OnMouseUp(pos)
            
                
    def OnMouseDown(self, pos):
        self.play_button.OnMouseDown(pos)
        self.songs_button.OnMouseDown(pos)
        self.creds_button.OnMouseDown(pos)

    def setPlayCallback(self, callback):
        self.play_button.set_callback(callback)

    def setSongsCallback(self, callback):
        self.songs_button.set_callback(callback)

    def setCredsCallback(self, callback):
        self.creds_button.set_callback(callback)
Ejemplo n.º 2
0
class CredScreen:
    def __init__(self):
        #Loading
        self.up_img = pygame.image.load(os.path.join('assets', 'back_up.png'))
        self.down_img = pygame.image.load(
            os.path.join('assets', 'back_down.png'))
        self.font = pygame.font.Font(None, 30)

        #Background
        self.background = pygame.image.load(
            os.path.join('assets', 'credits_background.png'))

        #Back button
        self.back_btn = Button(
            self.up_img, self.down_img,
            pygame.Rect(4, 4, self.up_img.get_width(),
                        self.up_img.get_height()))

    def update(self):
        pass

    def draw(self, surface):
        surface.blit(self.background, pygame.Rect(0, 0, 320, 240))
        self.back_btn.draw(surface)

    def OnMouseUp(self, pos):
        self.back_btn.OnMouseUp(pos)

    def OnMouseDown(self, pos):
        self.back_btn.OnMouseDown(pos)

    def setBackCallback(self, callback):
        self.back_btn.set_callback(callback)
Ejemplo n.º 3
0
class PlayScreen:

    def __init__(self):
        #Loading
        self.up_img = pygame.image.load(os.path.join('assets', 'back_up.png'))
        self.down_img = pygame.image.load(os.path.join('assets', 'back_down.png'))
        self.up_img_right = pygame.transform.flip(self.up_img, True, False)
        self.down_img_right = pygame.transform.flip(self.down_img, True, False)
        self.up_touch = pygame.image.load(os.path.join('assets', 'touch_up.png'))
        self.down_touch = pygame.image.load(os.path.join('assets', 'touch_down.png'))
        self.font = pygame.font.Font(None, 30)

        #Background
        self.background = pygame.image.load(os.path.join('assets', 'background.png'))
        self.fretboard = pygame.image.load(os.path.join('assets', 'fretboard.png'))
        self.fretboard_rect = pygame.Rect((0,0), (1,1))
        
        #Back button
        self.back_btn = Button(self.up_img, self.down_img, pygame.Rect(4, 4, self.up_img.get_width(), self.up_img.get_height()))

        #Note Buttons
        self.fretpositions = [[(32,65), (0,0),(270, 61),(385, 60),(490, 58),(600, 56),(700, 55),(790, 53),(880, 51),(960, 50),(1040, 48),(1120, 46), (1185, 45)],
                              [(32,90), (0,0),(270, 89),(385, 88),(490, 88),(600, 87),(700, 87),(790, 87),(880, 86),(960, 86),(1040, 85),(1120, 85), (1185, 85)],
                              [(32,115),(0,0),(270, 116),(385, 117),(490, 118),(600, 119),(700, 120),(790, 120),(880, 121),(960, 122),(1040, 123),(1120, 124), (1185, 125)],
                              [(32,145),(0,0),(270, 148),(385, 150),(490, 151),(600, 153),(700, 155),(790, 156),(880, 158),(960, 160),(1040, 161),(1120, 163), (1185, 165)]]
        size = (32, 32)
        self.buttons = []
        for fret in range(0,11):
            for string in range(0,4):
                if fret != 1:
                    x,y = self.fretpositions[3-string][fret] 
                    rect = pygame.Rect((x-16, y-16), size)
                    btn = Button(self.up_touch, self.down_touch, rect)
                    btn.set_callback(self.note_callback)
                    btn.set_info((fret, string))
                    self.buttons.append(btn)

        slide_size = (36,30)
        left_pos = (120, 205)
        right_pos = (164, 205)
        self.slide_left  = Button(self.up_img, self.down_img, pygame.Rect(left_pos,slide_size))
        self.slide_left.set_callback(self.slide_left_callback)
        self.slide_right = Button(self.up_img_right, self.down_img_right, pygame.Rect(right_pos,slide_size))
        self.slide_right.set_callback(self.slide_right_callback)
        self.amount_moved = 0
    
    def update(self):
        pass

    def draw(self, surface):
        surface.blit(self.background, pygame.Rect(0,0,320,240))
        surface.blit(self.fretboard, self.fretboard_rect)
        self.back_btn.draw(surface)
        for btn in self.buttons:
            btn.draw(surface)
        self.slide_left.draw(surface)
        self.slide_right.draw(surface)

    def OnMouseUp(self, pos):
        self.back_btn.OnMouseUp(pos)
        self.slide_left.OnMouseUp(pos)
        self.slide_right.OnMouseUp(pos)
        for btn in self.buttons:
            btn.OnMouseUp(pos)
            
    def OnMouseDown(self, pos):
        self.back_btn.OnMouseDown(pos)
        self.slide_left.OnMouseDown(pos)
        self.slide_right.OnMouseDown(pos)
        for btn in self.buttons:
            btn.OnMouseDown(pos)

    def setBackCallback(self, callback):
        self.back_btn.set_callback(callback)

    def note_callback(self, btn):
        print("note pressed"+str(btn.info))
        print(btn.text_string)
	    amp_on()
        play_fret(btn.info[0], btn.info[1], 1)
	    amp_off()
Ejemplo n.º 4
0
class SongScreen:
    def __init__(self):
        #Loading
        self.up_img = pygame.image.load(os.path.join('assets', 'back_up.png'))
        self.down_img = pygame.image.load(
            os.path.join('assets', 'back_down.png'))
        self.btn_up_img = pygame.image.load(
            os.path.join('assets', 'button_up.png'))
        self.btn_down_img = pygame.image.load(
            os.path.join('assets', 'button_down.png'))
        self.btn_up_img = pygame.transform.scale(self.btn_up_img, (220, 40))
        self.btn_down_img = pygame.transform.scale(self.btn_down_img,
                                                   (220, 40))

        self.font = pygame.font.Font(None, 30)

        #Background
        self.background = pygame.image.load(
            os.path.join('assets', 'background.png'))

        #Back button
        self.back_btn = Button(
            self.up_img, self.down_img,
            pygame.Rect(4, 4, self.up_img.get_width(),
                        self.up_img.get_height()))

        self.smoke_btn = Button(self.btn_up_img, self.btn_down_img,
                                pygame.Rect((50, 50), (220, 40)))
        self.smoke_btn.set_text(self.font, "Pachelbel's Canon")
        self.smoke_btn.set_callback(self.smoke_callback)
        self.seven_btn = Button(self.btn_up_img, self.btn_down_img,
                                pygame.Rect((50, 110), (220, 40)))
        self.seven_btn.set_text(self.font, "Happy Birthday")
        self.seven_btn.set_callback(self.seven_callback)
        self.scale_btn = Button(self.btn_up_img, self.btn_down_img,
                                pygame.Rect((50, 170), (220, 40)))
        self.scale_btn.set_text(self.font, "Test")
        self.scale_btn.set_callback(self.scale_callback)

        self.title = self.font.render("Songs", True, (255, 255, 255))

    def update(self):
        pass

    def draw(self, surface):
        surface.blit(self.background, pygame.Rect(0, 0, 320, 240))
        self.back_btn.draw(surface)
        self.smoke_btn.draw(surface)
        self.seven_btn.draw(surface)
        self.scale_btn.draw(surface)
        title_rect = self.title.get_rect()
        title_rect.center = (160, title_rect.height / 2 + 10)
        surface.blit(self.title, title_rect)

    def OnMouseUp(self, pos):
        self.back_btn.OnMouseUp(pos)
        self.smoke_btn.OnMouseUp(pos)
        self.seven_btn.OnMouseUp(pos)
        self.scale_btn.OnMouseUp(pos)

    def OnMouseDown(self, pos):
        self.back_btn.OnMouseDown(pos)
        self.smoke_btn.OnMouseDown(pos)
        self.seven_btn.OnMouseDown(pos)
        self.scale_btn.OnMouseDown(pos)

    def setBackCallback(self, callback):
        self.back_btn.set_callback(callback)

    def smoke_callback(self, btn):
        print("smoke")
        play_song(0)

    def seven_callback(self, btn):
        print("seven")
        play_song(1)

    def scale_callback(self, btn):
        print("scale")
        play_song(2)