def __init__(self): print "INIT One Player Game" #**************************** основное window self.win_width = 1024#Ширина создаваемого окна self.win_height = 700# Высота self.win_display = (self.win_width,self.win_height)# Группируем ширину и высоту в одну переменную self.timer = pygame.time.Clock() self.online = True #**************************** инициализация self.left = self.right = self.up = self.down = self.space = False self.exit_ = True# флаг для выхода self.windows = Windows()# инициализируем Windows self.player = Player((100,100))# инициализируем Tank #self.bul = self.player.shot_bull() self.level1 = Level('level1.txt')#Инициализируем level1 self.level1.load_level() self.platforms = self.level1.ret_tiles() #******************************* свойства для сетевого взаимодействия #**************************** блоки спрайтов self.block_list = pygame.sprite.Group() #Это список спрайтов. Каждый блок добавляется в этот список. self.all_sprites_list = pygame.sprite.Group()# # Это список каждого спрайта. Все блоки, а также блок игрока. self.bullet_list = pygame.sprite.Group()#тес массив спрайтов пули self.block_list.add(self.platforms) self.all_sprites_list.add(self.player)
def load_level(): """Generates a new random level.""" GAME['level'] = Level() GAME['level'].generate_solvable(8, 12, 0.2, 0.4, 0.05, 1, 3, 3) GAME['level'].save('tmp') GAME['player'] = Player2(GAME['level']) display_all() cli.display_toolbar() cli.handle_action()
def test_parse(self): text = \ 'Invaders: pos(0,0)\n' \ '[1,1] [1,2] [1,3]\n' \ 'Bunkers:\n' \ 'pos(70,430) size(13,3)\n' \ 'pos(340,430) size(13,3)\n' level = Level(text) invaders, bunkers = level.invaders, level.bunkers expected = [[ Invader(0, 75, 42, 30, 5, 1, 1, 0), Invader(47, 75, 42, 30, 5, 1, 2, 0), Invader(94, 75, 42, 30, 5, 1, 3, 0) ]] actual = invaders.arr_invaders self.assertEqual(expected, actual)
class Application: """Base class of the game. Here is the game loop""" defaultWidth = 1280 defaultHeight = 800 def __init__(self): self.window = ApplicationWindow(self, Application.defaultWidth, Application.defaultHeight) self.keys = self.setupKeyboard() self.controller = Level(self.window, self.keys, "resources/levels/level1-1.tmx") self.start() def start(self): self.running = True pyglet.clock.set_fps_limit(60) self.window.switch_to() fps = pyglet.clock.ClockDisplay() while self.running: pyglet.clock.tick() self.window.dispatch_events() self.controller.update() fps.draw() self.window.dispatch_event("on_draw") self.window.flip() def setupKeyboard(self): keys = key.KeyStateHandler() self.window.push_handlers(keys) return keys def on_draw(self): self.window.clear() self.controller.draw() def on_mouse_press(self, x, y, button, modifier): self.controller.handleMouse(x, y, button, modifier) def on_close(self): print("Exited") self.window.close() self.running = False
class OnePlayerGame(): def __init__(self): print "INIT One Player Game" #**************************** основное window self.win_width = 1024#Ширина создаваемого окна self.win_height = 700# Высота self.win_display = (self.win_width,self.win_height)# Группируем ширину и высоту в одну переменную self.timer = pygame.time.Clock() self.online = True #**************************** инициализация self.left = self.right = self.up = self.down = self.space = False self.exit_ = True# флаг для выхода self.windows = Windows()# инициализируем Windows self.player = Player((100,100))# инициализируем Tank #self.bul = self.player.shot_bull() self.level1 = Level('level1.txt')#Инициализируем level1 self.level1.load_level() self.platforms = self.level1.ret_tiles() #******************************* свойства для сетевого взаимодействия #**************************** блоки спрайтов self.block_list = pygame.sprite.Group() #Это список спрайтов. Каждый блок добавляется в этот список. self.all_sprites_list = pygame.sprite.Group()# # Это список каждого спрайта. Все блоки, а также блок игрока. self.bullet_list = pygame.sprite.Group()#тес массив спрайтов пули self.block_list.add(self.platforms) self.all_sprites_list.add(self.player) #****************************инициализируем pygame (получаем screen) def init_window(self): pygame.init()#инициализируем pygame self.screen = pygame.display.set_mode(self.win_display)# Создаем окошко pygame.display.set_caption('SERVER VISUALISATION')#название шапки "капчи" #****************************обработка процессов и действий (обработка нажатий (mouse and keyboard и др.)) def tick(self): self.timer.tick(60) #****************************обработка for event in pygame.event.get(): if (event.type == QUIT) or (event.type == KEYDOWN and event.key == K_ESCAPE): print "Goodbye" sys.exit(0) self.draw_game() self.update_game() #****************************отобрыжение процессов def draw_game(self): self.windows.draw_windows(self.screen)#рисуем окна self.all_sprites_list.draw(self.screen) self.block_list.draw(self.screen) self.bullet_list.draw(self.screen) pygame.display.update()# обновление и вывод всех изменений на экран #****************************shot def shot_bull_game(self): self.player.shot_bull() self.bullet_list.add(self.player.ret_bull()) #**************************** при столкновении пули с объектом удаление пули def destroy_bull_game(self): sprite.groupcollide(self.block_list,self.bullet_list,0,1) #**************************** update def update_game(self): self.player.tank_update(self.left,self.right,self.up,self.down,self.space,self.platforms) self.destroy_bull_game() self.player.bull_move() #****************************удаление данных (destroy data here) def end_pygame(): pygame.quit() #****************************ЗАПУСК ИГРЫ def play_game(self): print 'play_game' self.init_window()
def main(): engine = Engine((256, 224), 2) level = Level.from_tiled("level.json") engine.root = level engine.start()
def optimize_menu(): cli.add_action("1", start_value_iteration) cli.add_action("2", start_policy_iteration) cli.add_action("3", start_qlearning) cli.clear_status() cli.add_status("Press (1) to start Value Iteration algorithm.") cli.add_status("Press (2) to start Policy Iteration algorithm.") cli.add_status("Press (3) to start QLearning algorithm.") display_all() cli.wait_for_action('1', '2', '3', 'e') if __name__ == "__main__": cli = get_cli() cli.add_action('exit', quit_app, toolbar=True) cli.add_action('load level', load_level, toolbar=True) cli.add_action('play', user_play, toolbar=True) cli.add_action('optimize', optimize_menu, toolbar=True) GAME['level'] = Level() GAME['level'].load("instances/lvl-n8-0") GAME['player'] = Player2(GAME['level']) display_all() cli.display_toolbar() cli.wait_for_action('e', 'l', 'p', 'o')
def test_incorrect_format_exception(self): text = \ 'Invaders: pos(0,0)\n' \ '{1,1] [1,2] [1,3]\n' with self.assertRaises(IncorrectFormatLevelsFile): Level(text)
def __init__(self): self.window = ApplicationWindow(self, Application.defaultWidth, Application.defaultHeight) self.keys = self.setupKeyboard() self.controller = Level(self.window, self.keys, "resources/levels/level1-1.tmx") self.start()
def OnInit(self): self.level = self.add(Level()) self.level.newPize()