Changeset 18


Ignore:
Timestamp:
02/02/10 01:33:43 (12 years ago)
Author:
sc
Message:

configuration:

  • button layout added

client_interface_button:

  • initial checking as distinct module

client_interface:

  • button initializing and drawing added

client_interface_component:

  • initial checking as distinct module
Location:
rc
Files:
2 added
2 edited

Legend:

Unmodified
Added
Removed
  • rc/puzzlebox_brainstorms_client_interface.py

    r17 r18  
    2424import puzzlebox_brainstorms_configuration as configuration 
    2525import puzzlebox_brainstorms_client 
     26import puzzlebox_brainstorms_client_interface_component as component 
     27import puzzlebox_brainstorms_client_interface_button as button 
    2628#import puzzlebox_logger 
    2729 
     
    4446WINDOW_BACKGROUND_COLOR = configuration.WINDOW_BACKGROUND_COLOR 
    4547 
     48IMAGE_DIRECTORY = configuration.IMAGE_DIRECTORY 
     49 
     50BUTTON_LAYOUT = configuration.BUTTON_LAYOUT 
     51 
    4652##################################################################### 
    4753# Classes 
    4854##################################################################### 
    4955 
    50 class puzzlebox_brainstorms_client_interface: 
     56class puzzlebox_brainstorms_client_interface( \ 
     57         component.puzzlebox_brainstorms_client_interface_component): 
    5158         
    5259        def __init__(self, log, \ 
     
    7885                        self.operating_system = os.name 
    7986                 
     87                self.pygame = pygame 
     88                self.FLIP = FLIP 
     89                 
    8090                self.initialize_pygame() 
    8191                #self.initialize_speech() 
     
    93103                #self.message = '' 
    94104                 
    95                 #self.initialize_menu(menu_letter_tree) 
    96                  
    97                 #self.update_display() 
     105                self.buttons = [] 
     106                 
     107                self.initialize_buttons(BUTTON_LAYOUT) 
     108                 
     109                self.update_display() 
    98110         
    99111         
     
    105117                                                                                                                                                self.display_window_y_coordinate) 
    106118                 
    107                 pygame.init() 
    108                  
    109                 if (FLIP): 
     119                self.pygame.init() 
     120                 
     121                if (self.FLIP): 
    110122                         
    111123                        self.screen = pygame.display.set_mode((self.display_window_x_dimension, \ 
     
    114126                 
    115127                else: 
    116                  
     128                         
    117129                        self.screen = pygame.display.set_mode((self.display_window_x_dimension, \ 
    118130                                                                                                                                self.display_window_y_dimension), \ 
     
    129141                 
    130142                 
    131                 self.pygame = pygame 
    132                 self.pygame.FLIP = FLIP 
     143                #self.pygame = pygame 
     144                #self.pygame.FLIP = FLIP 
    133145                self.pygame.mouse.set_visible(0) 
    134146                 
    135147                 
    136                 pygame.display.set_caption('Puzzlebox Brainstorms - Client Interface') 
     148                self.pygame.display.set_caption('Puzzlebox Brainstorms - Client Interface') 
    137149                 
    138150                # Set Background 
     
    141153                #self.background.set_alpha(0) 
    142154                self.screen.blit(self.background, (0,0)) 
     155         
     156         
     157        ################################################################## 
     158 
     159        def initialize_buttons(self, button_layout): 
     160                 
     161                self.buttons = [] 
     162                 
     163                for each in button_layout['buttons']: 
     164                        button_image = each[0] 
     165                        activated_image = each[1] 
     166                        button_x = each[2] 
     167                        button_y = each[3] 
     168                        command = each[4] 
     169                         
     170                        if ((button_image != None) and \ 
     171                            (button_image != '.') and \ 
     172                            (button_image != '..') and \ 
     173                            (os.path.exists(os.path.join(IMAGE_DIRECTORY, button_image)))): 
     174                                 
     175                                button_image = os.path.join(IMAGE_DIRECTORY, button_image) 
     176                         
     177                        else: 
     178                                if self.DEBUG: 
     179                                        print "Error: Button image does not exist:" 
     180                                        print "   %s" % os.path.join(IMAGE_DIRECTORY, button_image) 
     181                                continue 
     182                         
     183                         
     184                        if ((activated_image != None) and \ 
     185                            (activated_image != '.') and \ 
     186                            (activated_image != '..') and \ 
     187                            (os.path.exists(os.path.join(IMAGE_DIRECTORY, activated_image)))): 
     188                                 
     189                                activated_image = os.path.join(IMAGE_DIRECTORY, activated_image) 
     190                         
     191                        else: 
     192                                if self.DEBUG: 
     193                                        print "Error: Activated button image does not exist:" 
     194                                        print "   %s" % os.path.join(IMAGE_DIRECTORY, activated_image) 
     195                                continue 
     196                         
     197                         
     198                        interface_button = \ 
     199                           button.puzzlebox_brainstorms_client_interface_button( \ 
     200                                   self.pygame, \ 
     201                                   self.screen, \ 
     202                                   button_image, \ 
     203                                   activated_image, \ 
     204                                   button_x, \ 
     205                                   button_y, \ 
     206                                   command, \ 
     207                                   self.DEBUG) 
     208                         
     209                         
     210                        self.buttons.append(interface_button) 
    143211         
    144212         
     
    156224                #puzzlebox_brainstorms_client.reactor.run() 
    157225                 
     226                 
    158227                command = 'python puzzlebox_brainstorms_client.py' 
    159228                 
     
    222291                        for event in self.pygame.event.get(): 
    223292                                 
    224                                 if (event.type is pygame.locals.QUIT): 
     293                                if (event.type is self.pygame.locals.QUIT): 
    225294                                        sys.exit() 
    226295                                 
    227296                                 
    228                                 elif (event.type == pygame.locals.KEYDOWN): 
     297                                elif (event.type == self.pygame.locals.KEYDOWN): 
    229298                                         
    230299                                        if 'key' in event.dict.keys(): 
    231300                                                 
    232                                                 if (event.dict['key'] == pygame.K_ESCAPE): 
     301                                                if (event.dict['key'] == self.pygame.K_ESCAPE): 
    233302                                                        sys.exit() 
    234303                                                 
    235                                                 elif ((event.dict['key'] == pygame.K_UP) or \ 
    236                                                            (event.dict['key'] == pygame.K_w)): 
     304                                                elif ((event.dict['key'] == self.pygame.K_UP) or \ 
     305                                                           (event.dict['key'] == self.pygame.K_w)): 
    237306                                                        commands.append('drive_forward') 
    238307                                                 
    239                                                 elif ((event.dict['key'] == pygame.K_DOWN) or \ 
    240                                                            (event.dict['key'] == pygame.K_s)): 
     308                                                elif ((event.dict['key'] == self.pygame.K_DOWN) or \ 
     309                                                           (event.dict['key'] == self.pygame.K_s)): 
    241310                                                        commands.append('drive_reverse') 
    242311                                                 
    243                                                 elif ((event.dict['key'] == pygame.K_LEFT) or \ 
    244                                                            (event.dict['key'] == pygame.K_a)): 
     312                                                elif ((event.dict['key'] == self.pygame.K_LEFT) or \ 
     313                                                           (event.dict['key'] == self.pygame.K_a)): 
    245314                                                        commands.append('turn_left') 
    246315                                                 
    247                                                 elif ((event.dict['key'] == pygame.K_RIGHT) or \ 
    248                                                            (event.dict['key'] == pygame.K_d)): 
     316                                                elif ((event.dict['key'] == self.pygame.K_RIGHT) or \ 
     317                                                           (event.dict['key'] == self.pygame.K_d)): 
    249318                                                        commands.append('turn_right') 
    250319                                                 
    251                                                 elif ((event.dict['key'] == pygame.K_PAGEDOWN) or \ 
    252                                                            (event.dict['key'] == pygame.K_c)): 
     320                                                elif ((event.dict['key'] == self.pygame.K_PAGEDOWN) or \ 
     321                                                           (event.dict['key'] == self.pygame.K_c)): 
    253322                                                        commands.append('turn_in_reverse') 
    254323                         
     
    261330 
    262331##################################################################### 
     332##################################################################### 
     333 
     334 
     335##################################################################### 
    263336# Functions 
    264337##################################################################### 
    265  
    266338 
    267339##################################################################### 
  • rc/puzzlebox_brainstorms_configuration.py

    r12 r18  
    101101IMAGE_DIRECTORY = os.path.join(os.getcwd(), 'images') 
    102102 
     103BUTTON_LAYOUT = { \ 
     104        'name': 'Button Layout', \ 
     105        'buttons': [ \ 
     106                     ['2-up-orange.png', '2-up-yellow.png', \ 
     107                       37, 0, 'drive_forward'], \ 
     108                     ['4-left-orange.png', '4-left-yellow.png', 
     109                       0, 37, 'turn_left'], \ 
     110                     ['5-center.png', '5-center.png', 
     111                       37, 37, None], \ 
     112                     ['6-right-orange.png', '6-right-yellow.png', \ 
     113                       74, 37, 'turn_left'], \ 
     114                     ['9-lower_right-orange.png', '9-lower_right-yellow.png', \ 
     115                       74, 74, 'turn_left'], \ 
     116                   ] 
     117} 
Note: See TracChangeset for help on using the changeset viewer.