예제 #1
0
    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)
예제 #2
0
파일: main.py 프로젝트: gualt1995/pMADI
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()
예제 #3
0
 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)
예제 #4
0
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
예제 #5
0
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()
예제 #6
0
def main():
    engine = Engine((256, 224), 2)
    level = Level.from_tiled("level.json")
    engine.root = level
    engine.start()
예제 #7
0
파일: main.py 프로젝트: gualt1995/pMADI

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')
예제 #8
0
 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)
예제 #9
0
    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()
예제 #10
0
 def OnInit(self):
     self.level = self.add(Level())
     self.level.newPize()