示例#1
0
 def click(self):
     if self.aim.running:
         return False
     if g.wrong:
         return False
     ind = self.which()
     if ind == -1:
         return False
     if len(self.aim.list1) == 0:
         return False
     self.player.glow_start(ind)
     if self.sugar:
         self.back_button.set_sensitive(False)
     else:
         buttons.off('back')
     if ind == self.aim.list1[g.player_n]:
         g.player_n += 1
         if g.player_n > g.score:
             g.score = g.player_n
         if g.player_n == len(self.aim.list1):  # all correct - add another
             self.aim.inc()
             g.player_n = 0
     else:
         g.wrong = True
         g.wrong_ind = ind
         g.right_ind = self.aim.list1[g.player_n]
         if self.sugar:
             self.green_button.set_sensitive(True)
         else:
             buttons.on('green')
     return True  # click processed
示例#2
0
 def click(self):
     if self.aim.running:
         return False
     if g.wrong:
         return False
     ind = self.which()
     if ind == -1:
         return False
     if len(self.aim.list1) == 0:
         return False
     self.player.glow_start(ind)
     if self.sugar:
         self.back_button.set_sensitive(False)
     else:
         buttons.off('back')
     if ind == self.aim.list1[g.player_n]:
         g.player_n += 1
         if g.player_n > g.score:
             g.score = g.player_n
         if g.player_n == len(self.aim.list1):  # all correct - add another
             self.aim.inc()
             g.player_n = 0
     else:
         g.wrong = True
         g.wrong_ind = ind
         g.right_ind = self.aim.list1[g.player_n]
         if self.sugar:
             self.green_button.set_sensitive(True)
         else:
             buttons.on('green')
     return True  # click processed
示例#3
0
 def clear(self):
     self.cg()
     self.home()
     self.steps = 0
     self.running = False
     self.draw_turtle()
     buttons.on('turtle')
示例#4
0
 def display(self):
     g.screen.fill(utils.WHITE)
     if g.toc_showing:
         g.screen.blit(self.toc.surf, (g.offset, 0))
         buttons.draw()
         return
     g.screen.blit(self.layout.surf, (g.offset, 0))
     if g.jig:
         self.jig.draw()
     if g.mouse_locn:
         x, y = pygame.mouse.get_pos()
         m = '(' + str(x) + ',' + str(y) + ')'
         cxy = (g.sx(29), g.sy(1.2))
         utils.message(g.screen, g.font1, m, cxy, 5)
     if g.colors:
         g.screen.blit(g.colors_img, g.colors_xy)
         if utils.mouse_on_img(g.colors_img, g.colors_xy):
             c = g.screen.get_at(pygame.mouse.get_pos())
             r, g1, b = '0', '0', '0'
             if c[0] > 200: r = '255'
             if c[1] > 200: g1 = '255'
             if c[2] > 200: b = '255'
             m = '(' + r + ',' + g1 + ',' + b + ')'
             cxy = (g.sx(5.3), g.sy(19.5))
             utils.message(g.screen, g.font1, m, cxy, 5)
     if self.layout.movie != None: self.layout.movie.draw()
     buttons.on(['fd', 'back'])
     if g.page == 1: buttons.off('back')
     elif g.page == g.last_page: buttons.off('fd')
     buttons.draw()
     if g.rect_on:
         pygame.draw.rect(g.screen, utils.GREEN, g.rect)
     if self.popup != None:
         surf, x, y = self.popup
         g.screen.blit(surf, (x, y))
示例#5
0
def main():
    while True:
        ms=pygame.time.get_ticks()
        for event in pygame.event.get():
            if event.type==QUIT:
                utils.exit()
            elif event.type == pygame.MOUSEBUTTONDOWN: # allow any button - left, right or middle
                glow_off()
                if click(): break
                display(); pygame.display.flip() # no pointer in case button pressed
                bu=buttons.check()
                if bu<>'':do_button(bu)
            elif event.type==KEYDOWN:
                if event.key==K_ESCAPE: utils.exit()
                if event.key==K_x: g.version_display=not g.version_display
        if g.player_n==0 and not buttons.active('green'):
            buttons.on("back")
        display()
        aim.do()
        aim.glow(); player.glow()
        if g.version_display:
            g.message=g.app+' Version '+g.ver
            g.message+='  '+str(g.w)+' x '+str(g.h)
            g.message+='  '+str(g.frame_rate)+'fps'
            utils.message(g.screen,g.font1,g.message)
        mx,my=pygame.mouse.get_pos()
        if my>g.pointer.get_height(): g.screen.blit(g.pointer,(mx,my))
        pygame.display.flip()
        g.clock.tick(40)
        d=pygame.time.get_ticks()-ms; g.frame_rate=int(1000/d)
示例#6
0
 def do_button(self, bu):
     if bu == 'back':
         self.pages_on()
         return
     if bu == 'try':
         value = self.ctry.try1()
         return value
     if bu == 'clear':
         self.ctry.clear()
         return
     if bu == 'replay':
         self.ctry.setup()
         return
     if bu == 'minus':
         self.do_key(pygame.K_MINUS)
         return
     if bu == 'space':
         self.do_key(pygame.K_SPACE)
         return
     if bu == 'fd':
         self.pages.fd()
         return
     if bu == 'bk':
         self.pages.bk()
         return
     if bu == 'blue':
         g.pages = False
         buttons.on(('clear', 'try', 'minus', 'space', 'replay'))
         buttons.off(('fd', 'blue', 'bk'))
示例#7
0
 def click(self):
     g.glow_sq = None
     if self.carry == 0:
         n = self.which_pile()
         if n > 0:
             piles[n] -= 1
             self.carry = n
         else:
             sq = self.which_square()
             if sq <> None:
                 if not sq.given:
                     if sq <> None:
                         self.carry = sq.piece
                         sq.piece = 0
     else:
         sq = self.which_square()
         if sq == None:
             piles[self.carry] += 1
             self.carry = 0
         else:
             if not sq.given:
                 if sq.piece > 0:  # piece already there
                     piles[sq.piece] += 1  # put it back
                 sq.piece = self.carry
                 self.carry = 0
                 buttons.on('reset')
     self.check()
示例#8
0
    def run(self):
        g.init()
        if not self.journal: utils.load()
        self.board = sud.Board()
        self.board.setup()
        load_save.retrieve()
        self.board.check()
        self.buttons_setup()
        if self.journal:  # Sugar only
            a, b, c, d = pygame.cursors.load_xbm('my_cursor.xbm',
                                                 'my_cursor_mask.xbm')
            pygame.mouse.set_cursor(a, b, c, d)
        going = True
        while going:
            # Pump GTK messages.
            while gtk.events_pending():
                gtk.main_iteration()

            # Pump PyGame messages.
            for event in pygame.event.get():
                if event.type == pygame.QUIT:  # only in standalone version
                    if not self.journal: utils.save()
                    going = False
                elif event.type == pygame.MOUSEMOTION:
                    g.redraw = True
                    if self.canvas <> None: self.canvas.grab_focus()
                elif event.type == pygame.MOUSEBUTTONDOWN:
                    g.redraw = True
                    if event.button == 2:  # centre button
                        if not self.journal:
                            g.version_display = not g.version_display
                    if event.button == 1:
                        bu = buttons.check()
                        if bu != '':
                            self.do_button(bu)
                        elif not g.finished:
                            if not self.help_check():
                                self.board.click()
                                if g.finished:
                                    buttons.on('new')
                                    buttons.off('reset')
                    if event.button == 3:
                        if not g.finished:
                            self.board.right_click()
            if not going: break
            if g.redraw:
                self.display()
                if g.version_display: utils.version_display()
                #g.screen.blit(g.pointer,(g.mx,g.my))
                pygame.display.flip()
                g.redraw = False
            self.count = g.count
            tf = False
            if pygame.mouse.get_focused(): tf = True
            pygame.mouse.set_visible(tf)
            g.clock.tick(40)
示例#9
0
 def display(self):
     g.screen.fill((0, 0, 120))
     self.som.draw()
     if self.som.complete():
         buttons.off(['cream', 'yellow'])
         buttons.on('black')
     else:
         buttons.on(['cream', 'yellow'])
         buttons.off('black')
     buttons.draw()
示例#10
0
 def do_button(self, bu):
     if bu == 'save':
         load_save.save_surf()
         buttons.on('load')
         return
     if bu == 'load':
         load_save.load_surf()
         return
     if bu == 'clear':
         g.surf.fill(utils.CREAM)
         return
示例#11
0
 def process(self):
     if g.state == 0:
         g.grid.start()
     if g.state == 1:
         g.current = 1
         if self.complete(): g.state = 3
     if g.state == 2:
         g.current = 2
         g.grid.wizard()
         if self.complete(): g.state = 3
     if g.state == 3:
         buttons.on("cyan")
 def buttons_control(self):
     if g.button_display:
         buttons.on(['back', 'fd'])
         if g.tess_n == 1: buttons.off('back')
         if g.tess_n > g.max_n: buttons.off('fd')
         if g.tess_n == len(g.tesses): buttons.off('fd')
         if g.tess_n > g.max_n or self.tessl.complete():
             buttons.off('solve')
         else:
             buttons.on('solve')
     else:
         buttons.off(['back', 'fd', 'solve'])
示例#13
0
 def draw(self):
     g.screen.fill((100, 0, 100))
     if self.current == None: self.current = 1
     if self.img == None:
         file1 = str(self.current) + '.png'
         self.img = utils.load_image(file1, False, 'pages')
     g.screen.blit(self.img, self.xy)
     buttons.on(('fd', 'bk'))
     if self.current == 1: buttons.off('bk')
     if self.current == 10: buttons.off('fd')
     s = 'The Flags of the World page ' + str(self.current)
     utils.text_blit1(g.screen, s, g.font1, self.textxy, utils.CREAM, False)
def check():
    if player.complete:
        if convert(player.get_program()) == aim.get_program():
            buttons.on('cyan')
            p = aim.get_program()
            if p[1] == 1:  # have basic shape
                n = p[0]
                if n not in g.shapes:
                    g.shapes.append(n)
                    anim.start()
        else:
            g.checked = True
示例#15
0
 def do_click(self):
     if g.state == 2:  # menu
         if self.slider.mouse(): return  # level changed
         n = self.menu.orange.n
         self.jigsaw.pic_n = n
         self.jigsaw.rc_n = g.level - 1
         self.jigsaw.setup()
         self.jigsaw.orange = None
         self.jigsaw.orange_set()
         g.state = 3
     elif g.state == 3:  # jigsaw
         self.jigsaw.click()
         if self.jigsaw.complete(): buttons.on('new')
示例#16
0
 def do_button(self, bu):
     if bu == 'green':  # start
         self.aim.new1()
         g.player_n = 0
         g.wrong = False
         g.score = 0
         if self.sugar:
             self.green_button.set_sensitive(True)
             self.back_button.set_sensitive(False)
         else:
             buttons.off('green')
             buttons.on('back')
     elif bu == 'back':
         self.aim.start()  # show again
示例#17
0
 def do_button(self, bu):
     if bu == 'green':  # start
         self.aim.new1()
         g.player_n = 0
         g.wrong = False
         g.score = 0
         if self.sugar:
             self.green_button.set_sensitive(True)
             self.back_button.set_sensitive(False)
         else:
             buttons.off('green')
             buttons.on('back')
     elif bu == 'back':
         self.aim.start()  # show again
示例#18
0
文件: Letters.py 项目: i5o/letters
 def display(self):
     g.screen.fill(self.colors[1])
     if not self.sugar:
         g.screen.blit(g.bgd, (g.sx(0), 0))
     self.let.draw()
     if self.sugar:
         self.back_button.set_sensitive(False)
         self.tick_button.set_sensitive(False)
     else:
         buttons.off(['back', 'tick'])
     if g.state in (2, 4):
         if len(self.let.ans) > 0:
             if self.sugar:
                 self.back_button.set_sensitive(True)
             else:
                 buttons.on('back')
         if len(self.let.ans) > 1:
             if self.sugar:
                 self.tick_button.set_sensitive(True)
             else:
                 buttons.on('tick')
     buttons.draw()
     #utils.display_number(g.state,(10,10),g.font1)
     if g.state == 3:
         ln = len(self.let.ans)
         if ln == 2:
             s = _('Your word scores one point.')
         else:
             s = _('Your word scores %s points.' % (str(2 ** (ln - 2))))
         utils.text_blit(g.screen, s, g.font2, g.message_cxy,
                         self.colors[0], False)
     if g.state == 4:
         s = _('Sorry, %s is not in my word list' % self.let.ans)
         utils.text_blit(g.screen, s, g.font2, g.message_cxy,
                         self.colors[0], False)
     if self.sugar:
         self.label.set_markup(
             '<span><big><b> %s (%s)</b></big></span>' % (str(g.score),
                                                          str(g.best)))
     else:
         if g.score > 0:
             s = _('Total: %s' % (str(g.score)))
             utils.text_blit(g.screen, s, g.font1, g.score_cxy,
                             self.colors[0], False)
         if g.best > 0:
             s = _('Best: %s' % (str(g.best)))
             utils.text_blit(g.screen, s, g.font1, g.best_cxy,
                             self.colors[0], False)
     if g.help_on:
         utils.centre_blit(g.screen, g.help_img, g.help_cxy)
示例#19
0
 def check_numbers(self):
     if not buttons.active('plus') and not self.correct():
         (mx,my)=pygame.mouse.get_pos()
         x1=g.sx(3);y1=g.sy(3.5);h=g.n[0].get_height()
         for i in range(len(g.top)):
             x=self.display_n(g.top[i],(x1,y1),False)
             w=x-x1
             rect=pygame.Rect(x1,y1,w,h)
             if rect.collidepoint(mx,my):
                 g.buffr.append(g.top[i]); del g.top[i]
                 buttons.on(['back','plus','times'])
                 if len(g.buffr)>1: buttons.on('equals')
                 return True#****
             x1=x+g.sp1
     return False
 def display(self):  # called each loop
     if g.big:
         g.screen.fill(self.colors[1])
         utils.centre_blit(g.screen, g.big_surface, (g.sx(16), g.sy(11.5)))
     else:
         if self.sugar:
             g.screen.fill(self.colors[1])
         else:
             g.screen.blit(g.bgd, (g.sx(0), 0))
         g.screen.blit(g.box, (g.x0, g.y0))
         g.screen.blit(g.box, (g.x1, g.y1))
         if not self.sugar:
             utils.centre_blit(g.screen, g.magician, g.magician_c)
         self.draw_goal()
         utils.centre_blit(g.screen, g.turtle,
                           (g.x0 + 4 * g.dd, g.y0 + 6 * g.dd))
         self.tu.draw()
         if self.tu.win:
             if self.sugar:
                 if self.good_job is None:
                     path = self.parent.good_job_image_path()
                     self.good_job = utils.load_image(path, True)
                 if g.w > g.h:
                     utils.centre_blit(
                         g.screen, self.good_job, (g.sx(7), g.sy(17)))
                 else:
                     utils.centre_blit(g.screen, self.good_job, (g.sx(7),
                                                                 g.sy(38)))
             else:
                 utils.centre_blit(g.screen, g.smiley, (g.sx(16.6),
                                                        g.sy(2.2)))
             if self.sugar:
                 self.cyan_button.set_sensitive(True)
             else:
                 buttons.on('cyan')
             if not self.journal:
                 utils.save()
         self.draw_nos()
         if not self.sugar:
             buttons.draw()
             self.slider.draw()
         if g.score > 0:
             if self.sugar:
                 self.parent.update_score(int(g.score))
             else:
                 utils.display_score()
         utils.display_number1(g.pattern, (g.sx(2.4), g.sy(2)),
                               g.font1, utils.WHITE)
示例#21
0
 def display(self):
     g.screen.fill(self.colors[1])
     if not self.sugar:
         g.screen.blit(g.bgd, (g.sx(0), 0))
     self.let.draw()
     if self.sugar:
         self.back_button.set_sensitive(False)
         self.tick_button.set_sensitive(False)
     else:
         buttons.off(['back', 'tick'])
     if g.state in (g.STATE_PLAY, g.STATE_WRONG):
         if len(self.let.ans) > 0:
             if self.sugar:
                 self.back_button.set_sensitive(True)
             else:
                 buttons.on('back')
         if len(self.let.ans) > 1:
             if self.sugar:
                 self.tick_button.set_sensitive(True)
             else:
                 buttons.on('tick')
     buttons.draw()
     if g.state == g.STATE_RIGHT:
         ln = len(self.let.ans)
         if ln == 2:
             s = _('Your word scores one point.')
         else:
             s = _('Your word scores %s points.' % (str(2**(ln - 2))))
         utils.text_blit(g.screen, s, g.font2, g.message_cxy,
                         self.colors[0], False)
     if g.state == g.STATE_WRONG:
         s = _('Sorry, %s is not in my word list' % self.let.ans)
         utils.text_blit(g.screen, s, g.font2, g.message_cxy,
                         self.colors[0], False)
     if self.sugar:
         self.label.set_markup('<span><big><b> %s (%s)</b></big></span>' %
                               (str(g.score), str(g.best)))
     else:
         if g.score > 0:
             s = _('Total: %s' % (str(g.score)))
             utils.text_blit(g.screen, s, g.font1, g.score_cxy,
                             self.colors[0], False)
         if g.best > 0:
             s = _('Best: %s' % (str(g.best)))
             utils.text_blit(g.screen, s, g.font1, g.best_cxy,
                             self.colors[0], False)
     if g.help_on:
         utils.centre_blit(g.screen, g.help_img, g.help_cxy)
示例#22
0
 def fast_do(self):
     if self.running:
         self.steps += 2
         self.fd(self.size)
         self.rt(self.a)
         self.j += 1
         if self.j == self.n:
             self.j = 0
             self.rt(self.angle)
             self.i += 1
             if self.i == self.repeat:
                 self.draw_turtle()
                 buttons.on('turtle')
                 self.running = False
                 self.steps = 0
                 self.complete = True  #finished
示例#23
0
 def display(self):
     g.screen.fill((0, 0, 0))
     g.level = self.levels[self.menu.green.n]
     if g.state == 'menu':
         self.menu.draw()
         n = self.slider_n()
         if n != None: self.slider[n].draw()
     else:
         self.tr[g.level].draw()
         buttons.off(['1', '2', '3', '4'])
         if not self.tr[g.level].complete():
             buttons.on(['1', '2', '3', '4'])
             g.screen.blit(g.arrows, g.arrows_xy)
         elif self.tr[g.level].success:
             utils.centre_blit(g.screen, g.smiley, g.smiley_c)
         buttons.draw()
示例#24
0
def click():
    if aim.running: return False
    if g.wrong: return False
    ind=which()
    if ind==-1: return False
    if len(aim.list1)==0: return False
    player.glow_start(ind)
    buttons.off("back")
    if ind==aim.list1[g.player_n]:
        g.player_n+=1
        if g.player_n>g.score: g.score=g.player_n
        if g.player_n==len(aim.list1): # all correct - add another
            aim.inc(); g.player_n=0
    else:
        g.wrong=True; g.wrong_ind=ind; g.right_ind=aim.list1[g.player_n]
        buttons.on("green")
    return True # click processed
示例#25
0
文件: Letters.py 项目: i5o/letters
 def do_key(self, key):
     if key == pygame.K_1:
         g.version_display = not g.version_display
         return
     if key in g.CROSS:
         self.do_click()
         return
     if key in g.CIRCLE:
         if g.help_on:
             if not self.sugar:
                 g.help_on = False
                 buttons.on('help')
             return
         else:
             if not self.sugar:
                 g.help_on = True
                 buttons.off('help')
             return
     if key in g.SQUARE:
         self.do_button('new')
         return
     if key in g.UP:
         if g.state in (2, 4):
             self.do_button('back')
         return
     if key in g.LEFT:
         self.let.left()
         return
     if key in g.RIGHT:
         self.let.right()
         return
     if key in g.TICK:
         if len(self.let.ans) > 1:
             self.do_tick()
         return
     #if key==pygame.K_4: self.let.given='clangers'; return###
     if g.state in (2, 4):
         letter = letter_keys.which(key)
         if letter is not None:
             self.let.key(letter)
             return
         if key == pygame.K_BACKSPACE:
             g.state = 2
             self.let.back()
             return
示例#26
0
 def do_key(self, key):
     if key == pygame.K_1:
         g.version_display = not g.version_display
         return
     if key in g.CROSS:
         self.do_click()
         return
     if key in g.CIRCLE:
         if g.help_on:
             if not self.sugar:
                 g.help_on = False
                 buttons.on('help')
             return
         else:
             if not self.sugar:
                 g.help_on = True
                 buttons.off('help')
             return
     if key in g.SQUARE:
         self.do_button('new')
         return
     if key in g.UP:
         if g.state in (g.STATE_PLAY, g.STATE_WRONG):
             self.do_button('back')
         return
     if key in g.LEFT:
         self.let.left()
         return
     if key in g.RIGHT:
         self.let.right()
         return
     if key in g.TICK:
         if len(self.let.ans) > 1:
             self.do_tick()
         return
     if g.state in (g.STATE_PLAY, g.STATE_WRONG):
         letter = letter_keys.which(key)
         if letter is not None:
             self.let.key(letter)
             return
         if key == pygame.K_BACKSPACE:
             g.state = g.STATE_PLAY
             self.let.back()
             return
示例#27
0
 def do_button(self,bu):
     if bu=='green':
         if g.running:
             g.running=False; buttons.clear()
         else:
             buttons.stay_down('green'); g.running=True
     elif bu=='yellow':
         g.running=False; buttons.clear(); self.sim.step()
     elif bu=='cream':
         g.running=False; buttons.clear(); self.sim.clear()
     elif bu=='cyan':
         g.running=False; buttons.clear(); self.sim.clear()
         self.sim.load()
     elif bu=='orange':
         g.running=False; buttons.clear()
         self.sim.save()
         if g.saved_n>0: buttons.on('cyan')
     elif bu=='help':
         g.help_on=True; buttons.off('help'); return
示例#28
0
 def update(self):
     if g.glow_ms <> None:
         if g.glow_ms == -1:  # start glow (set in tra.py)
             g.glow_ms = pygame.time.get_ticks()
         else:  # check if glow finished
             d = pygame.time.get_ticks() - g.glow_ms
             if d > 800:
                 g.glow_ms = None
                 g.redraw = True
     if g.red_ms <> None:
         if g.red_ms == -1:  # start red (set in tra.py)
             g.red_ms = pygame.time.get_ticks()
         else:  # check if red finished
             d = pygame.time.get_ticks() - g.red_ms
             if d > 400:
                 g.red_ms = None
                 g.redraw = True
     buttons.on('reset')
     if self.board.first: buttons.off('reset')
示例#29
0
 def do_button(self, bu):
     if bu == 'toc':
         for (bu, filename, surf, x, y) in g.popups:
             bu.off()
         buttons.off(['fd', 'back', 'toc'])
         for (bu, n) in g.toc:
             bu.on()
         g.toc_showing = True
     if bu == 'blue':
         for (bu, n) in g.toc:
             if bu.mouse_on():
                 if g.page != n:
                     g.page = n
                     self.render()
                 if g.jig: self.jig.shuffle()
                 break
         for (bu, filename, surf, x, y) in g.popups:
             bu.on()
         buttons.on(['toc'])
         for (bu, n) in g.toc:
             bu.off()
         g.toc_showing = False
     if bu == 'fd':
         g.page += 1
         self.render()
         if g.jig: self.jig.shuffle()
     if bu == 'back':
         g.page -= 1
         self.render()
         if g.jig: self.jig.shuffle()
     if bu == 'yellow':
         for (bu, filename, surf, x, y) in g.popups:
             if bu.mouse_on():
                 if self.bu != None: self.bu.on()
                 self.popup = surf, x, y
                 bu.off()
                 self.bu = bu
                 return
示例#30
0
 def display(self):  # called each loop
     if g.big:
         g.screen.fill(self.colors[1])
         utils.centre_blit(g.screen, g.big_surface, (g.sx(16), g.sy(11.5)))
     else:
         if self.sugar:
             g.screen.fill(self.colors[1])
         else:
             g.screen.blit(g.bgd, (g.sx(0), 0))
         g.screen.blit(g.box, (g.x0, g.y0))
         g.screen.blit(g.box, (g.x1, g.y1))
         if not self.sugar:
             utils.centre_blit(g.screen, g.magician, g.magician_c)
         self.draw_goal()
         utils.centre_blit(g.screen, g.turtle,
                           (g.x0 + 4 * g.dd, g.y0 + 6 * g.dd))
         self.tu.draw()
         if self.tu.win:
             utils.centre_blit(g.screen, g.smiley, (g.sx(16.6), g.sy(2.2)))
             if self.sugar:
                 self.cyan_button.set_sensitive(True)
             else:
                 buttons.on('cyan')
             if not self.journal:
                 utils.save()
         self.draw_nos()
         if not self.sugar:
             buttons.draw()
             self.slider.draw()
         if g.score > 0:
             if self.sugar:
                 self.label.set_markup(
                     '<span><big><b> %s</b></big></span>' % (str(g.score)))
             else:
                 utils.display_score()
         utils.display_number1(g.pattern, (g.sx(2.4), g.sy(2)),
                               g.font1, utils.BLUE)
示例#31
0
 def display(self):  # called each loop
     if g.big:
         g.screen.fill(self.colors[1])
         utils.centre_blit(g.screen, g.big_surface, (g.sx(16), g.sy(11.5)))
     else:
         if self.sugar:
             g.screen.fill(self.colors[1])
         else:
             g.screen.blit(g.bgd, (g.sx(0), 0))
         g.screen.blit(g.box, (g.x0, g.y0))
         g.screen.blit(g.box, (g.x1, g.y1))
         if not self.sugar:
             utils.centre_blit(g.screen, g.magician, g.magician_c)
         self.draw_goal()
         utils.centre_blit(g.screen, g.turtle,
                           (g.x0 + 4 * g.dd, g.y0 + 6 * g.dd))
         self.tu.draw()
         if self.tu.win:
             utils.centre_blit(g.screen, g.smiley, (g.sx(16.6), g.sy(2.2)))
             if self.sugar:
                 self.cyan_button.set_sensitive(True)
             else:
                 buttons.on('cyan')
             if not self.journal:
                 utils.save()
         self.draw_nos()
         if not self.sugar:
             buttons.draw()
             self.slider.draw()
         if g.score > 0:
             if self.sugar:
                 self.label.set_markup(
                     '<span><big><b> %s</b></big></span>' % (str(g.score)))
             else:
                 utils.display_score()
         utils.display_number1(g.pattern, (g.sx(2.4), g.sy(2)), g.font1,
                               utils.BLUE)
示例#32
0
 def do_button(self,bu):
     for n in range(1,19):
         if bu==str(n):
             self.chess.set_layout(n); self.chess.setup()
             for b in range(1,19): buttons.off(str(b))
             buttons.on(['menu','new'])
             if self.chess.layout in self.chess.help: buttons.on('help')
             g.menu=False; return
     if bu=='menu': self.menu(); return
     if bu=='help':
         if g.help1: g.help1=False; buttons.on('new')
         else: self.help1()
     if bu=='new':
         self.chess.setup()
示例#33
0
 def check_numbers(self):
     if g.state == 1:
         mx, my = g.pos
         x1, y1 = g.xy1
         h = g.n[0].get_height()
         for i in range(len(g.top)):
             x = self.display_n(g.top[i], (x1, y1), False)
             w = x - x1
             rect = pygame.Rect(x1, y1, w, h)
             if rect.collidepoint(mx, my):
                 g.buffr.append(g.top[i])
                 del g.top[i]
                 buttons.on(['plus', 'times'])
                 buttons.on('back')
                 g.state = 2
                 self.mouse_init()
                 if len(g.buffr) > 1:
                     buttons.on('equals')
                 return True
             x1 = x + g.sp1
     return False
示例#34
0
 def check_numbers(self):
     if g.state == 1:
         mx, my = g.pos
         x1, y1 = g.xy1
         h = g.n[0].get_height()
         for i in range(len(g.top)):
             x = self.display_n(g.top[i], (x1, y1), False)
             w = x - x1
             rect = pygame.Rect(x1, y1, w, h)
             if rect.collidepoint(mx, my):
                 g.buffr.append(g.top[i])
                 del g.top[i]
                 buttons.on(['plus', 'times'])
                 buttons.on('back')
                 g.state = 2
                 self.mouse_init()
                 if len(g.buffr) > 1:
                     buttons.on('equals')
                 return True
             x1 = x + g.sp1
     return False
示例#35
0
 def new1(self):
     g.magic_show=False
     self.display(True)
     pygame.display.flip()
     self.rects.setup(g.level)
     buttons.on("black")
示例#36
0
    def run(self, restore=False):
        self.g_init()
        if not self.journal:
            utils.load()
        load_save.retrieve()
        self.aim = simon.Simon(1200)  # arg is glow time
        if self.sugar:
            self.set_delay(800)
        else:
            self.set_delay()
        self.player = simon.Simon(200)
        if restore:
            self.restore_pattern()
            self.aim.started = True
        if self.sugar:
            self.green_button.set_sensitive(True)
            self.back_button.set_sensitive(False)
        else:
            bx = g.sx(22.42)
            by = g.sy(20.8)
            buttons.Button('green', (bx, by), True)
            buttons.Button('back', (bx, by), True)
            buttons.off('back')
            self.slider = slider.Slider(g.sx(9), g.sy(20.8), 3, utils.BLUE)
        self.rc = rc_skip_last.RC(3, 5)
        if self.canvas is not None:
            self.canvas.grab_focus()
        ctrl = False
        pygame.key.set_repeat(600, 120)
        key_ms = pygame.time.get_ticks()
        going = True
        while going:
            if self.journal:
                # Pump GTK messages.
                while gtk.events_pending():
                    gtk.main_iteration()

            # Pump PyGame messages.
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    if not self.journal:
                        utils.save()
                    going = False
                elif event.type == pygame.MOUSEMOTION:
                    g.pos = event.pos
                    g.redraw = True
                    if self.canvas is not None:
                        self.canvas.grab_focus()
                    self.mouse_set()
                elif event.type == pygame.MOUSEBUTTONDOWN:
                    g.redraw = True
                    if event.button == 1:
                        self.do_click()
                        self.flush_queue()
                elif event.type == pygame.KEYDOWN:
                    # throttle keyboard repeat
                    if pygame.time.get_ticks() - key_ms > 110:
                        key_ms = pygame.time.get_ticks()
                        if ctrl:
                            if event.key == pygame.K_q:
                                if not self.journal:
                                    utils.save()
                                going = False
                                break
                            else:
                                ctrl = False
                        if event.key in (pygame.K_LCTRL, pygame.K_RCTRL):
                            ctrl = True
                            break
                        self.do_key(event.key)
                        g.redraw = True
                        self.flush_queue()
                elif event.type == pygame.KEYUP:
                    ctrl = False
            if not going:
                break
            if self.sugar:
                if g.player_n == 0 and not self.green_button.get_sensitive():
                    self.back_button.set_sensitive(True)
            else:
                if g.player_n == 0 and not buttons.active('green'):
                    buttons.on('back')
            self.player.do()
            self.aim.do()
            if g.redraw:
                self.display()
                if g.version_display:
                    utils.version_display()
                if self.aim.running or self.aim.glow_active:
                    pass
                else:
                    g.screen.blit(g.pointer, g.pos)
                pygame.display.flip()
                g.redraw = False
            g.clock.tick(40)
示例#37
0
文件: Letters.py 项目: i5o/letters
    def run(self, restore=False):
        g.init()
        if not self.journal:
            utils.load()
        self.let = let.Let()
        # setup before retrieve
        load_save.retrieve()
        self.buttons_setup()
        if self.canvas is not None:
            self.canvas.grab_focus()
        ctrl = False
        pygame.key.set_repeat(600, 120)
        key_ms = pygame.time.get_ticks()
        going = True
        while going:
            if self.journal:
                # Pump GTK messages.
                while Gtk.events_pending():
                    Gtk.main_iteration()
            # Pump PyGame messages.
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    if not self.journal:
                        utils.save()
                    going = False
                elif event.type == pygame.MOUSEMOTION:
                    g.pos = event.pos
                    g.redraw = True
                    if self.canvas is not None:
                        self.canvas.grab_focus()
                elif event.type == pygame.MOUSEBUTTONDOWN:
                    g.redraw = True
                    if event.button == 1:
                        if not self.sugar and g.help_on:
                            g.help_on = False
                            buttons.on('help')
                        elif self.do_click():
                            pass
                        else:
                            bu = buttons.check()
                            if bu != '':
                                self.do_button(bu)
                                self.flush_queue()
                    if not self.sugar and event.button == 3:
                        g.help_on = True
                        buttons.off('help')
                elif event.type == pygame.KEYDOWN:
                    if not self.sugar and event.key not in g.CIRCLE:
                        g.help_on = False
                        buttons.on('help')
                    # throttle keyboard repeat
                    if pygame.time.get_ticks() - key_ms > 110:
                        key_ms = pygame.time.get_ticks()
                        if ctrl:
                            if event.key == pygame.K_q:
                                if not self.journal:
                                    utils.save()
                                going = False
                                break
                            else:
                                ctrl = False
                        if event.key in (pygame.K_LCTRL, pygame.K_RCTRL):
                            ctrl = True
                            break
                        self.do_key(event.key)
                        g.redraw = True
                        self.flush_queue()
                elif event.type == pygame.KEYUP:
                    ctrl = False
            if not going:
                break

            if g.state == 1:
                self.let.choose()
            if g.redraw:
                self.display()
                if g.version_display:
                    utils.version_display()
                if g.state != 1:
                    g.screen.blit(g.pointer, g.pos)
                pygame.display.flip()
                g.redraw = False
            g.clock.tick(40)
示例#38
0
    def run(self):
        g.init()
        if not self.journal: utils.load()
        load_save.retrieve()
        self.buttons_setup()
        self.objects = jum.Objects()
        self.objects.setup()
        self.setup()
        if self.canvas <> None: self.canvas.grab_focus()
        ctrl = False
        pygame.key.set_repeat(600, 120)
        key_ms = pygame.time.get_ticks()
        going = True
        while going:
            if self.journal:
                # Pump GTK messages.
                while gtk.events_pending():
                    gtk.main_iteration()

            # Pump PyGame messages.
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    if not self.journal: utils.save()
                    going = False
                elif event.type == pygame.MOUSEMOTION:
                    g.pos = event.pos
                    g.redraw = True
                    self.objects.update()
                    if self.canvas <> None: self.canvas.grab_focus()
                elif event.type == pygame.MOUSEBUTTONDOWN:
                    g.redraw = True
                    if event.button == 1:
                        if self.objects.click():
                            if self.objects.complete:
                                buttons.off('next')
                        else:
                            self.display()
                            bu = buttons.check()
                            if bu != '': self.do_button(bu)
                    if event.button == 3:
                        if buttons.active('next'): self.do_button('next')
                    self.flush_queue()
                elif event.type == pygame.KEYDOWN:
                    # throttle keyboard repeat
                    if pygame.time.get_ticks() - key_ms > 110:
                        key_ms = pygame.time.get_ticks()
                        if ctrl:
                            if event.key == pygame.K_q:
                                if not self.journal: utils.save()
                                going = False
                                break
                            else:
                                ctrl = False
                        if event.key in (pygame.K_LCTRL, pygame.K_RCTRL):
                            ctrl = True
                            break
                        self.do_key(event.key)
                        g.redraw = True
                        self.flush_queue()
                elif event.type == pygame.KEYUP:
                    ctrl = False
            if not going: break
            if g.setup_on:
                self.objects.setup()
                g.redraw = True
                if (pygame.time.get_ticks() - self.setup_ms) > 2000:
                    g.setup_on = False
                    buttons.on('next')
            if g.redraw:
                self.display()
                if g.version_display: utils.version_display()
                g.screen.blit(g.pointer, g.pos)
                pygame.display.flip()
                g.redraw = False
            g.clock.tick(40)
示例#39
0
    def run(self, restore=False):
        g.init()
        if not self.journal:
            utils.load()
        self.let = let.Let()
        # setup before retrieve
        load_save.retrieve()
        self.buttons_setup()
        if self.canvas is not None:
            self.canvas.grab_focus()
        pygame.key.set_repeat(600, 120)
        going = True
        while going:
            if self.journal:
                # Pump GTK messages.
                while Gtk.events_pending():
                    Gtk.main_iteration()
                if not going:
                    break

            # Pump PyGame messages.
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    if not self.journal:
                        utils.save()
                    return
                elif event.type == pygame.VIDEORESIZE:
                    pygame.display.set_mode(event.size, pygame.RESIZABLE)
                    g.redraw = True
                elif event.type == pygame.MOUSEMOTION:
                    g.pos = event.pos
                    g.redraw = True
                    if self.canvas is not None:
                        self.canvas.grab_focus()
                elif event.type == pygame.MOUSEBUTTONDOWN:
                    g.redraw = True
                    if event.button == 1:
                        if not self.sugar and g.help_on:
                            g.help_on = False
                            buttons.on('help')
                        elif self.do_click():
                            pass
                        else:
                            bu = buttons.check()
                            if bu != '':
                                self.do_button(bu)
                    if not self.sugar and event.button == 3:
                        g.help_on = True
                        buttons.off('help')
                elif event.type == pygame.KEYDOWN:
                    if not self.sugar and event.key not in g.CIRCLE:
                        g.help_on = False
                        buttons.on('help')
                    self.do_key(event.key)
                    g.redraw = True
                elif event.type == pygame.KEYUP:
                    pass
            if not going:
                break

            if g.state == g.STATE_SETUP:
                self.let.choose()
            if g.redraw:
                self.display()
                if g.version_display:
                    utils.version_display()
                if g.state != g.STATE_SETUP:
                    g.screen.blit(g.pointer, g.pos)
                pygame.display.flip()
                g.redraw = False
            g.clock.tick(40)