示例#1
0
文件: logic.py 项目: PlumpMath/yyagl
 def load_other_cars():
     if not cars:
         return self.mdt.fsm.demand('Countdown')
     car = cars.pop(0)
     car_class = Car
     if Server().is_active:
         car_class = NetworkCar  # if car in player_cars else Car
     if Client().is_active:
         car_class = NetworkCar
     s_p = self.track.get_start_pos(grid.index(car))
     pos, hpr = s_p[0] + (0, 0, .2), s_p[1]
     func = load_other_cars
     no_p = car not in player_cars
     srv_or_sng = Server().is_active or not Client().is_active
     car_class = AiCar if no_p and srv_or_sng else car_class
     drv = r_p.drivers[car]
     car_props = CarProps(
         car, r_p.coll_path, r_p.coll_name, pos, hpr, func,
         self.mdt, r_p.laps, r_p.keys, r_p.joystick, r_p.sounds,
         r_p.color_main, r_p.color, r_p.font, r_p.car_path,
         r_p.phys_file, r_p.wheel_names, r_p.tuning_engine,
         r_p.tuning_tires, r_p.tuning_suspensions, r_p.road_name,
         r_p.model_name, r_p.damage_paths, r_p.wheel_gfx_names,
         r_p.particle_path, drv.logic.engine, drv.logic.tires,
         drv.logic.suspensions, r_p.rocket_path, r_p.camera_vec,
         self.mdt.track.phys.waypoints, r_p.respawn_name,
         r_p.pitstop_name, r_p.wall_name, r_p.goal_name,
         r_p.bonus_name, r_p.roads_names, r_p.cars)
     new_car = car_class(car_props)
     game.cars += [new_car]
示例#2
0
文件: client.py 项目: cflavio/yorg
 def __init__(self, port, server):
     Client.__init__(self, port, server)
     self.authenticated = False
     self.is_server_up = True
     #self.restart()
     self.users = []
     self.is_server_active = False
     self.is_client_active = False
示例#3
0
文件: client.py 项目: oriolrg/yorg
 def __init__(self, port, server):
     Client.__init__(self, port, server)
     self.authenticated = False
     self.is_server_up = True
     #self.restart()
     self.users = []
     self.is_server_active = False
     self.is_client_active = False
示例#4
0
 def enterRace(self, track_path='', car_path='', drivers=''):
     LogMgr().log('entering Race state')
     base.ignore('escape-up')
     if 'save' not in self.mdt.options.dct:
         self.mdt.options['save'] = {}
     self.mdt.options['save']['track'] = track_path
     self.mdt.options['save']['car'] = car_path
     self.mdt.options['save']['drivers'] = drivers
     self.mdt.options.store()
     keys = self.mdt.options['settings']['keys']
     joystick = self.mdt.options['settings']['joystick']
     sounds = {
         'engine': 'assets/sfx/engine.ogg',
         'brake': 'assets/sfx/brake.ogg',
         'crash': 'assets/sfx/crash.ogg',
         'crash_hs': 'assets/sfx/crash_high_speed.ogg',
         'lap': 'assets/sfx/lap.ogg',
         'landing': 'assets/sfx/landing.ogg'
     }
     if Server().is_active:
         self.season.create_race_server(keys, joystick, sounds)
     elif Client().is_active:
         self.season.create_race_client(keys, joystick, sounds)
     else:
         race_props = self.mdt.logic.build_race_props(
             car_path, drivers, track_path, keys, joystick, sounds)
         self.mdt.logic.season.create_race(race_props)
     LogMgr().log('selected drivers: ' + str(drivers))
     self.mdt.logic.season.race.logic.drivers = drivers
     track_name_transl = track_path
     track_dct = {
         'desert': _('desert'),
         'mountain': _('mountain'),
         'amusement': _('amusement park')
     }
     if track_path in track_dct:
         track_name_transl = track_dct[track_path]
     singlerace = game.logic.season.__class__ == SingleRaceSeason
     self.mdt.logic.season.race.fsm.demand(
         'Loading', track_path, car_path, [], drivers,
         ['prototype', 'desert', 'mountain', 'amusement'],
         track_name_transl, singlerace, [
             'kronos', 'themis', 'diones', 'iapeto', 'phoibe', 'rea',
             'iperion'
         ], 'assets/images/cars/%s_sel.png',
         'assets/images/drivers/driver%s_sel.png',
         game.options['settings']['joystick'],
         game.options['settings']['keys'],
         Utils().menu_args, 'assets/sfx/countdown.ogg')
     self.mdt.logic.season.race.attach_obs(self.mdt.logic.on_race_loaded)
     exit_meth = self.mdt.logic.on_ingame_exit_confirm
     self.mdt.logic.season.race.attach_obs(exit_meth)
示例#5
0
 def connect(self):
     menu_gui = self.mdt.menu.gui
     try:
         eng.log(self.ent.get())
         Client().start(self.mdt.event.process_msg, self.ent.get())
         menu_args = self.mdt.menu.gui.menu_args
         self.add_widget(OnscreenText(
             text=_('Waiting for the server'), scale=.12, pos=(0, -.5),
             font=menu_gui.font, fg=menu_args.text_fg))
     except ClientError:
         txt = OnscreenText(_('Error'), pos=(0, -.05), fg=(1, 0, 0, 1),
                            scale=.16, font=menu_gui.menu_args.font)
         eng.do_later(5, txt.destroy)
示例#6
0
 def on_car(self, car):
     eng.log('car request: ' + car)
     Client().send([NetMsgs.car_request, car])
示例#7
0
文件: logic.py 项目: PlumpMath/yyagl
 def exit_play(self):
     Client().destroy()
     RaceLogic.exit_play(self)
示例#8
0
文件: logic.py 项目: PlumpMath/yyagl
 def send_ready(task):
     Client().send([NetMsgs.client_ready])
     eng.log('sent client ready')
     return task.again
示例#9
0
 def on_back(self):
     if Client().is_active:
         Client().destroy()