コード例 #1
0
ファイル: hop.py プロジェクト: iparedes/bugs2
        if ev.type == pygame.QUIT:
            sys.exit ()
        # We could handle other events separately, too, but do not care.

    # Draw the rectangle on the screen.
    cnt -= 1
    if cnt == 0:
        rnd = (random.randint (0, 5), random.randint (0, 5), \
               random.randint (0, 5))
        color = (rnd[0] * 340) % 255,  (rnd[1] * 122) % 255, \
                (rnd[2] * 278) % 255
        pygame.draw.rect (screen, color, (60, 50, 50, 50))
        cnt = 100

    # Pass all received events to the Renderer. We also could pass only
    # a subset of them, but want it to get all.
    re.distribute_events (*events)

    # Force a refresh of the UI elements as our main screen changed and
    # we want them to be placed upon the changes (look at the
    # intersection with the rectangle).
    re.refresh ()

    # We do not need to flip as it is done in the refresh() method of
    # the Renderer. If we assign just a part of the screen to the
    # Renderer, we would have to, of course.
    # pygame.display.flip ()

    # Do not use 100% CPU.
    pygame.time.delay (15)
コード例 #2
0
class DoctorsSurgery(Game):
    def __init__(self, screen, *args, **kw):
        Game.__init__(self, *args, **kw)

        self.re = Renderer ()
        self.re.screen = screen


        self.doctor_widget = DoctorWidget()


        self.doctor_widget.button.connect_signal('clicked', self.doit)

        for radio in self.doctor_widget.radios:
            radio.connect_signal('toggled', self.update_selection)

        self.re.add_widget( self.doctor_widget.table )

        # {'SIGNALS_KEYS': (2, 3),
        #  'SIGNALS_MOUSE': (5, 4, 6),
        #  'SIG_ACTIVATED': 'activated',
        #  'SIG_CLICKED': 'clicked',
        #  'SIG_DESTROYED': 'destroyed',
        #  'SIG_DIALOGRESPONSE': 'dialog-response',
        #  'SIG_DOUBLECLICKED': 'double-clicked',
        #  'SIG_ENTER': 'entered',
        #  'SIG_FOCUSED': 'focused',
        #  'SIG_INPUT': 'input',
        #  'SIG_KEYDOWN': 2,
        #  'SIG_KEYUP': 3,
        #  'SIG_LEAVE': 'left',
        #  'SIG_LISTCHANGED': 'list-changed',
        #  'SIG_MOUSEDOWN': 5,
        #  'SIG_MOUSEMOVE': 4,
        #  'SIG_MOUSEUP': 6,
        #  'SIG_SCREENCHANGED': 28,
        #  'SIG_SELECTCHANGED': 'selection-changed',
        #  'SIG_TICK': 25,
        #  'SIG_TOGGLED': 'toggled',
        #  'SIG_TWISTED': 26,
        #  'SIG_UPDATED': 27,
        # 'SIG_VALCHANGED': 'value-changed'}

      # RADIOBUTTON SIGNALS    
      
        # {2: None,
        #  4: [],
        #  5: [],
        #  6: [],
        #  'clicked': [],
        #  'destroyed': [],
        #  'entered': [],
        #  'focused': [],
        #  'left': [],
        #  'toggled': []}

        self.update_selection()





    def doit(self):
        radios = self.doctor_widget.radios

        data.sounds.Play("fx02laughter")
        #data.sounds.Play("fx03hit1")
        #data.sounds.sounds["fx02laughter"].play()
        #print data.sounds.sounds["fx02laughter"].get_length()
        #pygame.mixer.music.load(os.path.join("data","sounds","fx02laughter.ogg"))
        #pygame.mixer.music.play()


        selection = [btn.text for btn in radios if btn.state == 2][0]

        if selection == "Fix my eye":
            data.where_to = 'eyefix'
        if selection == "Leave doctors surgery":
            data.where_to = 'gig_select'




    def update_selection(self, *args):
        print args
        
        radios = self.doctor_widget.radios
        selection = [btn.text for btn in radios if btn.state == 2][0]
        self.selected = DOCTOR_CHOICES[ selection ]
        self.changed = True
        
        print selection

    def handle_events(self, events):
        Game.handle_events(self, events)

        for e in events:
            if e.type == KEYDOWN and e.key == K_ESCAPE:
                self.stop()
                break

        self.re.distribute_events (*events)

        # TODO: WHERE SHOULD THIS GO?
        # if self.doctor_widget.button.state == 2:
            # self.stop()

    def update(self, elapsed_time):
        Game.update(self, elapsed_time)

        if not pygame.mixer.music.get_busy():
            self.play_random_music()

    def draw(self, screen):
        rects = Game.draw(self, screen)
        self.re.screen = screen
        
        if self.changed:
            # self.re.screen.fill ((234, 228, 223))
            self.re.screen.blit(self.selected, (0,0))
            self.changed = 0
        
        self.re.refresh ()

        #rects.extend([screen.get_rect()])


        return rects

    def stop(self):
        """
        """
        print 'gig_select stopped'
        self.going = False
        pygame.mixer.music.fadeout(100)


    def start(self):
        """
        """
        print 'doctors_surgery started'
        self.going = True
        self.changed = True
        self.re.refresh ()
        self.elapsed_time = 0.0
        self.play_random_music()

    def play_random_music(self):
        import random
        #fname = random.choice("loop01.ogg loop02.ogg loop03.ogg loop04doctor.ogg loop05.ogg loop06doctor2.ogg loop07.ogg loop08end.ogg opener.ogg".split())
        fname = random.choice("loop01.ogg loop02.ogg loop03.ogg loop04doctor.ogg loop05.ogg loop06doctor2.ogg loop07.ogg loop08end.ogg".split())

        pygame.mixer.music.load(os.path.join("data","music",fname))
        pygame.mixer.music.play()
コード例 #3
0
class GigSelect(Game):
    def __init__(self, screen, *args, **kw):
        Game.__init__(self, *args, **kw)

        self.re = Renderer ()
        self.re.screen = screen

        self.gig_widget = GigWidget()

        self.gig_widget.button.connect_signal('clicked', self.done_it)
        self.gig_widget.doctor_button.connect_signal('clicked', self.go_doctor)

        for radio in self.gig_widget.radios:
            radio.connect_signal('toggled', self.update_selection)

        self.re.add_widget( self.gig_widget.table )

        # {'SIGNALS_KEYS': (2, 3),
        #  'SIGNALS_MOUSE': (5, 4, 6),
        #  'SIG_ACTIVATED': 'activated',
        #  'SIG_CLICKED': 'clicked',
        #  'SIG_DESTROYED': 'destroyed',
        #  'SIG_DIALOGRESPONSE': 'dialog-response',
        #  'SIG_DOUBLECLICKED': 'double-clicked',
        #  'SIG_ENTER': 'entered',
        #  'SIG_FOCUSED': 'focused',
        #  'SIG_INPUT': 'input',
        #  'SIG_KEYDOWN': 2,
        #  'SIG_KEYUP': 3,
        #  'SIG_LEAVE': 'left',
        #  'SIG_LISTCHANGED': 'list-changed',
        #  'SIG_MOUSEDOWN': 5,
        #  'SIG_MOUSEMOVE': 4,
        #  'SIG_MOUSEUP': 6,
        #  'SIG_SCREENCHANGED': 28,
        #  'SIG_SELECTCHANGED': 'selection-changed',
        #  'SIG_TICK': 25,
        #  'SIG_TOGGLED': 'toggled',
        #  'SIG_TWISTED': 26,
        #  'SIG_UPDATED': 27,
        # 'SIG_VALCHANGED': 'value-changed'}

      # RADIOBUTTON SIGNALS    
      
        # {2: None,
        #  4: [],
        #  5: [],
        #  6: [],
        #  'clicked': [],
        #  'destroyed': [],
        #  'entered': [],
        #  'focused': [],
        #  'left': [],
        #  'toggled': []}

        self.update_selection()

    def done_it(self):
        """ we have selected a gig.
        """

        data.where_to = "note_guess"

    def go_doctor(self):
        """
        """

        data.where_to = "doctors_surgery"
        print "asdf"



    def update_selection(self, *args):
        print args
        
        radios = self.gig_widget.radios
        selection = [btn.text for btn in radios if btn.state == 2][0]
        self.selected = GIG_CHOICES[ selection ]
        self.changed = True
        
        print selection

    def handle_events(self, events):

        Game.handle_events(self, events)

        for e in events:
            if e.type == KEYDOWN and e.key == K_ESCAPE:
                #self.stop()
                break

        self.re.distribute_events (*events)

        # TODO: WHERE SHOULD THIS GO?
        # if self.gig_widget.button.state == 2:
            # self.stop()

    def update(self, elapsed_time):
        Game.update(self, elapsed_time)

    def draw(self, screen):
        rects = Game.draw(self, screen)
        self.re.screen = screen
        
        if self.changed:
            # self.re.screen.fill ((234, 228, 223))
            self.re.screen.blit(self.selected, (0,0))
            self.changed = 0
        
        self.re.refresh ()


        # update the whole screen.
        #rects.extend([screen.get_rect()])

        return rects

    def stop(self):
        """
        """
        print 'gig_select stopped'
        self.going = False

    def start(self):
        """
        """
        print 'gig_select started'
        self.going = True
        self.changed = True
        self.re.refresh ()
        self.elapsed_time = 0.0
コード例 #4
0
class DoctorsSurgery(Game):
    def __init__(self, screen, *args, **kw):
        Game.__init__(self, *args, **kw)

        self.re = Renderer()
        self.re.screen = screen

        self.doctor_widget = DoctorWidget()

        self.doctor_widget.button.connect_signal('clicked', self.doit)

        for radio in self.doctor_widget.radios:
            radio.connect_signal('toggled', self.update_selection)

        self.re.add_widget(self.doctor_widget.table)

        # {'SIGNALS_KEYS': (2, 3),
        #  'SIGNALS_MOUSE': (5, 4, 6),
        #  'SIG_ACTIVATED': 'activated',
        #  'SIG_CLICKED': 'clicked',
        #  'SIG_DESTROYED': 'destroyed',
        #  'SIG_DIALOGRESPONSE': 'dialog-response',
        #  'SIG_DOUBLECLICKED': 'double-clicked',
        #  'SIG_ENTER': 'entered',
        #  'SIG_FOCUSED': 'focused',
        #  'SIG_INPUT': 'input',
        #  'SIG_KEYDOWN': 2,
        #  'SIG_KEYUP': 3,
        #  'SIG_LEAVE': 'left',
        #  'SIG_LISTCHANGED': 'list-changed',
        #  'SIG_MOUSEDOWN': 5,
        #  'SIG_MOUSEMOVE': 4,
        #  'SIG_MOUSEUP': 6,
        #  'SIG_SCREENCHANGED': 28,
        #  'SIG_SELECTCHANGED': 'selection-changed',
        #  'SIG_TICK': 25,
        #  'SIG_TOGGLED': 'toggled',
        #  'SIG_TWISTED': 26,
        #  'SIG_UPDATED': 27,
        # 'SIG_VALCHANGED': 'value-changed'}

        # RADIOBUTTON SIGNALS

        # {2: None,
        #  4: [],
        #  5: [],
        #  6: [],
        #  'clicked': [],
        #  'destroyed': [],
        #  'entered': [],
        #  'focused': [],
        #  'left': [],
        #  'toggled': []}

        self.update_selection()

    def doit(self):
        radios = self.doctor_widget.radios

        data.sounds.Play("fx02laughter")
        #data.sounds.Play("fx03hit1")
        #data.sounds.sounds["fx02laughter"].play()
        #print data.sounds.sounds["fx02laughter"].get_length()
        #pygame.mixer.music.load(os.path.join("data","sounds","fx02laughter.ogg"))
        #pygame.mixer.music.play()

        selection = [btn.text for btn in radios if btn.state == 2][0]

        if selection == "Fix my eye":
            data.where_to = 'eyefix'
        if selection == "Leave doctors surgery":
            data.where_to = 'gig_select'

    def update_selection(self, *args):
        print args

        radios = self.doctor_widget.radios
        selection = [btn.text for btn in radios if btn.state == 2][0]
        self.selected = DOCTOR_CHOICES[selection]
        self.changed = True

        print selection

    def handle_events(self, events):
        Game.handle_events(self, events)

        for e in events:
            if e.type == KEYDOWN and e.key == K_ESCAPE:
                self.stop()
                break

        self.re.distribute_events(*events)

        # TODO: WHERE SHOULD THIS GO?
        # if self.doctor_widget.button.state == 2:
        # self.stop()

    def update(self, elapsed_time):
        Game.update(self, elapsed_time)

        if not pygame.mixer.music.get_busy():
            self.play_random_music()

    def draw(self, screen):
        rects = Game.draw(self, screen)
        self.re.screen = screen

        if self.changed:
            # self.re.screen.fill ((234, 228, 223))
            self.re.screen.blit(self.selected, (0, 0))
            self.changed = 0

        self.re.refresh()

        #rects.extend([screen.get_rect()])

        return rects

    def stop(self):
        """
        """
        print 'gig_select stopped'
        self.going = False
        pygame.mixer.music.fadeout(100)

    def start(self):
        """
        """
        print 'doctors_surgery started'
        self.going = True
        self.changed = True
        self.re.refresh()
        self.elapsed_time = 0.0
        self.play_random_music()

    def play_random_music(self):
        import random
        #fname = random.choice("loop01.ogg loop02.ogg loop03.ogg loop04doctor.ogg loop05.ogg loop06doctor2.ogg loop07.ogg loop08end.ogg opener.ogg".split())
        fname = random.choice(
            "loop01.ogg loop02.ogg loop03.ogg loop04doctor.ogg loop05.ogg loop06doctor2.ogg loop07.ogg loop08end.ogg"
            .split())

        pygame.mixer.music.load(os.path.join("data", "music", fname))
        pygame.mixer.music.play()