def update_characters(bill, bull): #LOOKS FOR CHARACTERS FALLING IN HOLES OR STANDING ON MEETING POINT. IF loading_level IS TRUE, TELEPORTS CHARACTERS TO SPAWNING POINTS for character in Character.List: if Tile.get_tile(character.get_number()).type == 'hole': if Tile.get_tile(character.get_number()).x == character.x and Tile.get_tile(character.get_number()).y == character.y: if not character.has_target(): Tile.freeze = True functions.load_level(Tile.MAP['level']) if Tile.loading_level == True: Character.respawn(bill, bull) Tile.loading_level = False if bill.x == Tile.get_tile(Tile.MAP['point']).x and bill.y == Tile.get_tile(Tile.MAP['point']).y and not Character.on_point(): bill.status = 'happy' bull.status = 'sad' elif bull.x == Tile.get_tile(Tile.MAP['point']).x and bull.y == Tile.get_tile(Tile.MAP['point']).y and not Character.on_point(): bull.status = 'happy' bill.status = 'sad' elif Character.on_point(): bill.status = 'happy' bull.status = 'happy' Tile.freeze = True functions.load_level(Tile.MAP['level'] + 1) else: bill.status = 'sad' bull.status = 'sad'
def run(self): pygame.display.set_caption(self.caption) if self.state == S_MENU: play_button = Button( 'PLAY', Tile.screen_size[0] / 2 - self.button_size[0] / 2, 200, self.button_size[0], self.button_size[1], 'PLAY GAME') builder_button = Button( 'DEVELOP', Tile.screen_size[0] / 2 - self.button_size[0] / 2, 300, self.button_size[0], self.button_size[1], 'DEVELOP LEVEL') while self.state == S_MENU: self.state = functions.get_state() self.screen.blit(self.menubackground, (0, 0)) Button.draw_buttons(self.screen) menu_interaction(self.screen) pygame.display.flip() self.clock.tick(self.FPS) if self.state == S_GAME: Tile.create_tiles() bill = Character('Bill') bull = Character('Bull') functions.load_level(1) sound = pygame.mixer.Sound("audio/music.wav") sound.set_volume(.25) sound.play(-1) print Tile.MAP while self.state == S_GAME: self.state = functions.get_state() self.screen.blit(self.gamebackground, (0, 0)) Tile.draw_tiles(self.screen) Character.update_characters(bill, bull) Character.draw_characters(self.screen) interaction(self.screen, bill, bull) bill.movement() bull.movement() pygame.display.flip() self.clock.tick(self.FPS) if self.state == S_ESC: pass
def run(self): pygame.display.set_caption(self.caption) if self.state == S_MENU: play_button = Button('PLAY', Tile.screen_size[0] / 2 - self.button_size[0] / 2, 200, self.button_size[0], self.button_size[1], 'PLAY GAME') builder_button = Button('DEVELOP', Tile.screen_size[0] / 2 - self.button_size[0] / 2, 300, self.button_size[0], self.button_size[1], 'DEVELOP LEVEL') while self.state == S_MENU: self.state = functions.get_state() self.screen.blit(self.menubackground, (0,0)) Button.draw_buttons(self.screen) menu_interaction(self.screen) pygame.display.flip() self.clock.tick(self.FPS) if self.state == S_GAME: Tile.create_tiles() bill = Character('Bill') bull = Character('Bull') functions.load_level(1) sound = pygame.mixer.Sound("audio/music.wav") sound.set_volume(.25) sound.play(-1) print Tile.MAP while self.state == S_GAME: self.state = functions.get_state() self.screen.blit(self.gamebackground, (0,0)) Tile.draw_tiles(self.screen) Character.update_characters(bill, bull) Character.draw_characters(self.screen) interaction(self.screen, bill, bull) bill.movement() bull.movement() pygame.display.flip() self.clock.tick(self.FPS) if self.state == S_ESC: pass
def main_loop(level): settings = Settings() settings.set_screen_sizes(screen.get_size()) delta_time = clock.tick() / 1000 board_list = generate_map_board_list(load_level(level), settings) map_board = Board(board_list, settings) settings.enemy_waves = generate_enemy_waves(load_level(level)) add_buttons(screen, settings, [towers.NormalTower, towers.FastTower, towers.SplitTower]) background_surface = create_background_surface(screen.get_size()) while True: events = pg.event.get() for event in events.copy(): if event.type == pg.QUIT: terminate() elif event.type == pg.KEYDOWN: if event.key == pg.K_ESCAPE: action = menu(screen) if action == 'restart': return 'restart' elif event.type == pg.MOUSEBUTTONDOWN: if event.button == 3: settings.action = None if settings.lives <= 0: return game_over(screen) if not settings.enemy_waves and not settings.enemy_sprites.sprites(): return 'next_level' screen.fill(pg.Color('black')) screen.blit(background_surface, (0, 0)) add_text_info(screen, settings) map_board.update(events.copy(), screen, action=settings.action) settings.all_sprites.draw(screen) settings.all_sprites.update(delta_time=delta_time, screen=screen, mouse_pos=pg.mouse.get_pos()) pg.display.flip() delta_time = clock.tick(60) / 1000
def update_characters(bill, bull): #LOOKS FOR CHARACTERS FALLING IN HOLES OR STANDING ON MEETING POINT. try: for character in Character.List: if Tile.get_tile(character.get_number()).type == 'hole': if Tile.get_tile(character.get_number()).x == character.x and Tile.get_tile(character.get_number()).y == character.y: if not character.has_target(): functions.load_level(Tile.MAP['level']) if bill.x == Tile.get_tile(Tile.MAP['point']).x and bill.y == Tile.get_tile(Tile.MAP['point']).y and not Character.on_point(): bill.status = 'happy' bull.status = 'sad' elif bull.x == Tile.get_tile(Tile.MAP['point']).x and bull.y == Tile.get_tile(Tile.MAP['point']).y and not Character.on_point(): bull.status = 'happy' bill.status = 'sad' elif Character.on_point(): bill.status = 'happy' bull.status = 'happy' functions.load_level(Tile.MAP['level'] + 1) else: bill.status = 'sad' bull.status = 'sad' except Exception, e: functions.load_level(Tile.MAP['level'])
def next_level(gamestart=False): global finish, level, level_width, level_height, player1, player2 global all_sprites, player_group, tile_group global tile_size, displace, width level, level_width, level_height = load_level(levels[current_level % len(levels)]) width, height = 350, 350 screen = pygame.display.set_mode( (width, height), pygame.HWSURFACE | pygame.DOUBLEBUF | pygame.FULLSCREEN) pygame.display.set_caption("Run") pygame.display.set_icon(load_image("invert.png")) width_fraction = 0.9 displace = (width - int(width_fraction * width)) // 2 width = int(width_fraction * width) tile_size = width // level_width displace += (width - tile_size * level_width) / 2 if gamestart: start_screen(["QR", "WASD <^>"], screen, height) all_sprites = pygame.sprite.Group() player_group = pygame.sprite.Group() tile_group = pygame.sprite.Group() player1, player2 = generate_level(level, all_sprites, tile_group, player_group, tile_size) for sprite in all_sprites: sprite.rect.x += displace finish = Finish() finish_screen([ "Stage Over!", play(screen, height), str(SCORE[1]) + " : " + str(SCORE[2]), "SPACE to continue" ], screen, height)
def update_characters( bill, bull ): #LOOKS FOR CHARACTERS FALLING IN HOLES OR STANDING ON MEETING POINT. try: for character in Character.List: if Tile.get_tile(character.get_number()).type == 'hole': if Tile.get_tile(character.get_number( )).x == character.x and Tile.get_tile( character.get_number()).y == character.y: if not character.has_target(): functions.load_level(Tile.MAP['level']) if bill.x == Tile.get_tile( Tile.MAP['point']).x and bill.y == Tile.get_tile( Tile.MAP['point']).y and not Character.on_point(): bill.status = 'happy' bull.status = 'sad' elif bull.x == Tile.get_tile( Tile.MAP['point']).x and bull.y == Tile.get_tile( Tile.MAP['point']).y and not Character.on_point(): bull.status = 'happy' bill.status = 'sad' elif Character.on_point(): bill.status = 'happy' bull.status = 'happy' functions.load_level(Tile.MAP['level'] + 1) else: bill.status = 'sad' bull.status = 'sad' except Exception, e: functions.load_level(Tile.MAP['level'])
from Button import Button from camera import * from functions import can_move, load_level, load_image, near_store from player import Player from cell import Cell from store import store WIDTH = 500 HEIGHT = 500 WHITE = (255, 255, 255) lst = load_level('test_map.txt') new_lst = [] tiles_arr = [] get_status = {'.': 'grass', '#': 'road'} pg.init() clock = pg.time.Clock() running = True screen = pg.display.set_mode((WIDTH, HEIGHT)) canvas = pygame.Surface((WIDTH,HEIGHT)) player = Player() for i in range(len(lst)): for j in range(len(lst[i])): if lst[i][j] == '@':
per = get('http://127.0.0.1:8800/levels_get').json() level_x = per['ok'] level_name = level_x[0] level = level_x[1:] level = level.split('\n') screen.fill((255, 255, 255)) screen.blit(loading_image, (0, 0)) pygame.display.flip() player = generate_level(level, Tile, level_name, Player, all_sprites, wall_group, load_image, player_group) startsc = False web_level = True if not web_level: screen.fill((255, 255, 255)) level = load_level(level_name) screen.blit(loading_image, (0, 0)) pygame.display.flip() player = generate_level(level, Tile, level_name, Player, all_sprites, wall_group, load_image, player_group) marx = player[1] marx += 0.6 marx2 = marx - 0.2 mary = player[2] + 0.8 player = player[0] elif not startsc and not cutscene: # Управление персонажем и взаимодействия if event.type == pygame.KEYDOWN: if event.key == pygame.K_UP: g_up = True if event.key == pygame.K_LEFT: