Ignore:
Timestamp:
02/01/10 20:23:05 (13 years ago)
Author:
sc
Message:

rc:

  • failed NXT connection handling
  • drive_reverse command added

server:

  • improved connection handling

configuration:

  • os module now imported

client:

  • drive_reverse command added

client_interface:

  • keyboard command support added
File:
1 edited

Legend:

Unmodified
Added
Removed
  • rc/puzzlebox_brainstorms_client_interface.py

    r11 r12  
    1616 
    1717import os, sys 
     18 
     19import pygame 
     20#import pygame.font 
     21import pygame.image 
     22import pygame.locals 
     23 
    1824import puzzlebox_brainstorms_configuration as configuration 
     25import puzzlebox_brainstorms_client 
    1926#import puzzlebox_logger 
    2027 
     
    2431 
    2532DEBUG = 1 
     33 
     34FLIP = 1 
    2635 
    2736SERVER_HOST = configuration.SERVER_HOST 
     
    3948##################################################################### 
    4049 
    41 class puzzlebox_brainstorms_client: 
     50class puzzlebox_brainstorms_client_interface: 
    4251         
    4352        def __init__(self, log, \ 
     
    5059         
    5160                self.log = log 
    52                 self.DEBUG = self.DEBUG 
     61                self.DEBUG = DEBUG 
    5362                 
    5463                self.display_window_x_coordinate = display_window_x_coordinate 
     
    7483                self.pygame.FLIP = FLIP 
    7584                 
    76                 self.draw_background() 
     85                #self.draw_background() 
    7786                 
    7887                #self.pointer = thinking_cap_pointer(self.pygame, \ 
     
    8695                #self.initialize_menu(menu_letter_tree) 
    8796                 
    88                 self.update_display() 
     97                #self.update_display() 
    8998         
    9099         
     
    92101         
    93102        def initialize_pygame(self): 
    94                  
    95                 import pygame 
    96                 import pygame.font 
    97                 import pygame.image 
    98                 import pygame.locals 
    99103                 
    100104                os.environ['SDL_VIDEO_WINDOW_POS'] = "%i,%i" % (self.display_window_x_coordinate, \ 
     
    141145        ################################################################## 
    142146         
     147        def send_commands_to_server(self, commands): 
     148         
     149                #client = \ 
     150                   #puzzlebox_brainstorms_client.puzzlebox_brainstorms_client_command_line( 
     151                         #self.log, \ 
     152                         #commands, \ 
     153                         #SERVER_HOST, \ 
     154                         #SERVER_PORT) 
     155                #puzzlebox_brainstorms_client.reactor.callWhenRunning(client.execute_command_line) 
     156                #puzzlebox_brainstorms_client.reactor.run() 
     157                 
     158                command = 'python puzzlebox_brainstorms_client.py' 
     159                 
     160                for each in commands: 
     161                        command = '%s %s' % (command, each) 
     162                 
     163                if self.DEBUG: 
     164                        print "executing: %s" % commands 
     165                 
     166                os.system(command) 
     167         
     168         
     169        ################################################################## 
     170         
    143171        def start(self): 
    144172                 
     
    189217                                        #if self.DEBUG > 1: 
    190218                                                #print ":%i" % icon.hits 
    191  
    192  
    193                         clock.tick(60) 
     219                         
     220                        commands = [] 
    194221                         
    195222                        for event in self.pygame.event.get(): 
    196223                                 
    197                                 if event.type in (self.pygame.locals.QUIT): 
     224                                if (event.type is pygame.locals.QUIT): 
    198225                                        sys.exit() 
    199226                                 
    200227                                 
    201                                 elif event.type in self.pygame.locals.KEYDOWN: 
     228                                elif (event.type == pygame.locals.KEYDOWN): 
    202229                                         
    203                                         print event 
     230                                        print event.dict 
     231                                         
     232                                        if 'key' in event.dict.keys(): 
     233                                                 
     234                                                if (event.dict['key'] == pygame.K_ESCAPE): 
     235                                                        sys.exit() 
     236                                                 
     237                                                elif ((event.dict['key'] == pygame.K_UP) or \ 
     238                                                           (event.dict['key'] == pygame.K_w)): 
     239                                                        commands.append('drive_forward') 
     240                                                 
     241                                                elif ((event.dict['key'] == pygame.K_DOWN) or \ 
     242                                                           (event.dict['key'] == pygame.K_s)): 
     243                                                        commands.append('drive_reverse') 
     244                                                 
     245                                                elif ((event.dict['key'] == pygame.K_LEFT) or \ 
     246                                                           (event.dict['key'] == pygame.K_a)): 
     247                                                        commands.append('turn_left') 
     248                                                 
     249                                                elif ((event.dict['key'] == pygame.K_RIGHT) or \ 
     250                                                           (event.dict['key'] == pygame.K_d)): 
     251                                                        commands.append('turn_right') 
     252                                                 
     253                                                elif event.dict['key'] == 'c': 
     254                                                        commands.append('turn_in_reverse') 
     255                         
     256                         
     257                        if commands != []: 
     258                                self.send_commands_to_server(commands) 
     259                         
     260                        clock.tick(60) 
    204261 
    205262 
Note: See TracChangeset for help on using the changeset viewer.