def buildHTMLMap(seed, width, height): tstart = datetime.now() m = MapGenerator(int(width), int(height), str(seed)) #m.makeRandom().smooth().smooth().smooth().removeIslands().findSpawns() m.makeRandom().smooth().smooth().smooth().findSpawns().removeIslands_n() tdelta = datetime.now()-tstart html = """ <html> <head> <title>pymap</title> <style> table, tr, td, img{ border:none; padding:0px; margin:-1px; } body{ background-image:URL("/img/wool_colored_black.png"); } h3, h4, h5{ color:white; } </style> </head> <body>""" html += "<h3>Seed: <a href='/50x50/"+str(seed)+"'>"+str(seed)+"</a></h3>" html += "<h4>Generated in: "+str(tdelta)+"</h4>" html += """ <center> <table>""" table = { 'play': 'sand.png', 'spawn': 'dropper_front_horizontal.png', 'searched': 'planks_birch.png', 'wall': 'stonebrick_mossy.png', 'empty': 'wool_colored_black.png'} for y in Tessellation(m, table).mapValues(): html += "<tr>" for x in y: html += "<td><img src='/img/"+x+"' /></td>" html += "</tr>" html += """ </table> <h5>© 2013 - Neil Vallon</h5> </center> </body> </html> """ return html
def index(seed=300): import matplotlib.pyplot as plt import os, cStringIO response.content_type = "image/png" m = MapGenerator(100, 100, seed) m.makeRandom().smooth().smooth().smooth().findSpawns().removeIslands_n() table = { 'play': [1, 1, 1], 'spawn': [0, 0, 1], 'searched': [0.5, 1, 0.5], 'wall': [1, 0, 0], 'empty': [0, 0, 0]} fig = plt.imshow(Tessellation(m, table).mapValues(), interpolation='nearest') #plt.set_axis_off() plt.axis('off') output = cStringIO.StringIO() plt.savefig(output, format="png", facecolor='black', dpi=300) return output.getvalue()
else: (pos_x, pos_y) = (fov_px, fov_py) print "cur: ", (fov_px, fov_py) current_map.update_fov(fov_px, fov_py) current_map.draw_map() libtcod.console_put_char(main_console, fov_px, fov_py, '@', libtcod.BKGND_NONE) libtcod.console_blit(main_console, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0, SCREEN_X, SCREEN_Y) libtcod.console_flush() elif hasUpdate: libtcod.console_clear(None) libtcod.console_clear(main_console) libtcod.console_flush() gen = MapGenerator.MapGenerator() newMap = gen.generateCave(100, 80, main_console) libtcod.console_clear(None) libtcod.console_clear(main_console) libtcod.console_flush() while True: rx = randrange(20, 60) ry = randrange(30, 50) if (newMap[ry][rx] == ' '): break (fov_px, fov_py) = (rx, ry) while True: rx = randrange(20, 60) ry = randrange(30, 50) if (newMap[ry][rx] == ' '): break
import pyglet import pickle import GalaxyView import ThreadedServer import messages import Util import UserInterface # Map Stuff import MapGenerator import Map # Generate or load a map map_size = 32 mapLoader = MapGenerator.GaussianGenerator( map_size, map_size, 16, 24) # (width, height, spread, number) playMap = Map.Map(map_size, map_size, mapLoader) server_currentView = 0 def setCurrentView(view): global server_currentView server_currentView = view # TODO: Change fighter image to ship-class derived image shipImg = pyglet.resource.image("resources/ship_fighter.png") shipImg.anchor_x = shipImg.width / 2 shipImg.anchor_y = shipImg.height / 2 server_navComponent = UserInterface.UINavElement("Navigation Map", 0, 0, 100,
def play_game(game_save={}): """ Starts Dungeon game :param game_save: saved game state(if any) :return: nothing :rtype: None """ main_logger.debug(f'started') empty_space = '~' explored_space = '.' trap = 'x' treasure = '$' player = '*' move_command = 'Move' save_command = 'Save' end_game_session = 'End' user_options = [move_command, save_command, end_game_session] user_prompt = '\n'.join(user_options) result = '' game_over = False if game_save == {}: game_world = MapGenerator.generate(10, empty=empty_space, trap=trap, treasure=treasure) player_coordinates = setup_player_position(game_world, empty_space, player) else: game_world = game_save['map'] player_coordinates = game_save['player'] old_player_coordinates = player_coordinates hidden = [trap, treasure] while not game_over: game_world[old_player_coordinates[0]][ old_player_coordinates[1]] = explored_space game_world[player_coordinates[0]][player_coordinates[1]] = player old_player_coordinates = player_coordinates.copy() View.print_map_hide_secrets(game_world, hidden, empty_space) generate_warnings_if_required(game_world, player_coordinates, trap, treasure) main_logger.info(user_prompt) choice = input() if choice == move_command: handle_player_move(game_world, player_coordinates) elif choice == save_command: objects = {'map': game_world, 'player': player_coordinates} DungeonSaver.save_game(objects) elif choice == end_game_session: result = 'Game over' break else: main_logger.info('Invalid input') game_over, result = check_game_over(player_coordinates, game_world, trap, treasure) main_logger.info(result) View.print_map(game_world) main_logger.debug(f'ended {result}')
def __init__(self, width=800, height=800, fps=60, title="112 Pygame Game"): self.width = width self.height = height self.fps = fps self.title = title self.rows = 25 self.cols = 25 self.displayEnemyAttacks = False Tile.yDist = self.height // self.rows Tile.xDist = self.width // self.cols Unit.yDist = self.height // self.rows Unit.xDist = self.width // self.cols Mercenary.playerSprite = pygame.transform.scale( pygame.image.load("Images//PlayerMerc.png"), (Tile.xDist, Tile.yDist)) Mercenary.enemySprite = pygame.transform.scale( pygame.image.load("Images//EnemyMerc.png"), (Tile.xDist, Tile.yDist)) Bandit.playerSprite = pygame.transform.scale( pygame.image.load("Images//PlayerBandit.png"), (Tile.xDist, Tile.yDist)) Bandit.enemySprite = pygame.transform.scale( pygame.image.load("Images//EnemyBandit.png"), (Tile.xDist, Tile.yDist)) Archer.playerSprite = pygame.transform.scale( pygame.image.load("Images//PlayerArcher.png"), (Tile.xDist, Tile.yDist)) Archer.enemySprite = pygame.transform.scale( pygame.image.load("Images//EnemyArcher.png"), (Tile.xDist, Tile.yDist)) Soldier.playerSprite = pygame.transform.scale( pygame.image.load("Images//PlayerSoldier.png"), (Tile.xDist, Tile.yDist)) Soldier.enemySprite = pygame.transform.scale( pygame.image.load("Images//EnemySoldier.png"), (Tile.xDist, Tile.yDist)) #image from http://sites.bxmc.poly.edu/~ryansu/IP/index.php/journey-into-pixel-art/ Field.tileSprite = pygame.transform.scale( pygame.image.load("Images//grassTile.png"), (Tile.xDist, Tile.yDist)) #image from http://sites.bxmc.poly.edu/~ryansu/IP/index.php/journey-into-pixel-art/ Sand.tileSprite = pygame.transform.scale( pygame.image.load("Images//sandTile.png"), (Tile.xDist, Tile.yDist)) #image from http://sites.bxmc.poly.edu/~ryansu/IP/index.php/journey-into-pixel-art/ Mountain.tileSprite = pygame.transform.scale( pygame.image.load("Images//rockTile.png"), (Tile.xDist, Tile.yDist)) #images from https://www.pinterest.com/pin/410531322268651281/ used Tree.tileSprite = pygame.transform.scale( pygame.image.load("Images//treeTile.png"), (Tile.xDist, Tile.yDist)) #image from https://www.pinterest.com/pin/401313016766184775/ Fort.tileSprite = pygame.transform.scale( pygame.image.load("Images//fortTile.png"), (Tile.xDist, Tile.yDist)) #self.grid = MapGenerator.createBasicMap(self) self.grid = MapGenerator.proceduralMap(self) tempStats = { "HP": 10, "Strength": 15, "Defense": 10, "Speed": 10, "Skill": 10, "Luck": 10 } archer = Archer("Archer", copy.copy(tempStats), [Bow("Bow", 5, 100, 5, 0), 0, 0, 0, 0], "Player", (0, 0, 255)) soldier = Soldier("Soldier", copy.copy(tempStats), [Lance("Lance", 5, 100, 5, 0), 0, 0, 0, 0], "Player", (0, 0, 255)) merc = Mercenary("Merc", copy.copy(tempStats), [Sword("Sword", 5, 100, 5, 0), 0, 0, 0, 0], "Player", (0, 0, 255)) bandit = Bandit("Bandit", copy.copy(tempStats), [Axe("Axe", 5, 100, 5, 0), 0, 0, 0, 0], "Player", (0, 0, 255)) self.initUnit(archer) self.initUnit(soldier) self.initUnit(merc) self.initUnit(bandit) archer = Archer("Archer", copy.copy(tempStats), [Bow("Bow", 5, 100, 5, 0), 0, 0, 0, 0], "Enemy", (255, 0, 0)) soldier = Soldier("Soldier", copy.copy(tempStats), [Lance("Lance", 5, 100, 5, 0), 0, 0, 0, 0], "Enemy", (255, 0, 0)) merc = Mercenary("Merc", copy.copy(tempStats), [Sword("Sword", 5, 100, 5, 0), 0, 0, 0, 0], "Enemy", (255, 0, 0)) bandit = Bandit("Bandit", copy.copy(tempStats), [Axe("Axe", 5, 100, 5, 0), 0, 0, 0, 0], "Enemy", (255, 0, 0)) self.initUnit(archer) self.initUnit(soldier) self.initUnit(merc) self.initUnit(bandit) self.curRow = 0 self.curCol = 0
def initialize_Map(screen, settings): clock = pygame.time.Clock() map = mg.init(100, 100, screen, settings) w, h = pygame.display.get_surface().get_size() camera = Camera(w / h) #Camera.initialize_cam() #Camera.transform_blocks() #Camera.set_Blocks_settings() block_map = BlockMap(map) block_map.create_canvas(w * 5, h * 5) vw, vh = w * 2 * camera.zoom_level, h * 2 * camera.zoom_level block_map.update(vw, vh) vp_in_block = calc_view_port(camera, block_map) bar = Sidebar.Sidebar(settings) move_up = False move_down = False move_left = False move_right = False zoom_in = False zoom_out = False while True: screen.fill(colors.white) clock.tick(120) delta_time = clock.get_time() #print(delta_time) # ------------------------- events = pygame.event.get() # ----------------------------- #Camera.change_cam(delta_time, events) changed_pos = False changed_size = False for event in events: if event == pygame.QUIT: sys.exit() if event.type == pygame.MOUSEBUTTONDOWN: if event.button == 4: camera.zoom_in() changed_size = True if event.button == 5: camera.zoom_out() changed_size = True if event.type == pygame.KEYDOWN: if event.key == pygame.K_w or event.key == pygame.K_UP: move_up = True if event.key == pygame.K_s or event.key == pygame.K_DOWN: move_down = True if event.key == pygame.K_a or event.key == pygame.K_LEFT: move_left = True if event.key == pygame.K_d or event.key == pygame.K_RIGHT: move_right = True if event.key == pygame.K_PLUS: zoom_in = True if event.key == pygame.K_MINUS: zoom_out = True if event.type == pygame.KEYUP: if event.key == pygame.K_w or event.key == pygame.K_UP: move_up = False if event.key == pygame.K_s or event.key == pygame.K_DOWN: move_down = False if event.key == pygame.K_a or event.key == pygame.K_LEFT: move_left = False if event.key == pygame.K_d or event.key == pygame.K_RIGHT: move_right = False if event.key == pygame.K_PLUS: zoom_in = False if event.key == pygame.K_MINUS: zoom_out = False bar.process_event(events) if move_up: camera.move_up(delta_time) changed_pos = True if move_left: camera.move_left(delta_time) changed_pos = True if move_down: camera.move_down(delta_time) changed_pos = True if move_right: camera.move_right(delta_time) changed_pos = True if zoom_in: camera.zoom_in() changed_size = True if zoom_out: camera.zoom_out() changed_size = True if changed_size: # transform_blocks() # set_Blocks_settings() vw, vh = w * 2 * camera.zoom_level, h * 2 * camera.zoom_level block_map.update(vw, vh) if changed_pos or changed_size: vp_in_block = calc_view_port(camera, block_map) #print(camera.view_port(), vp_in_block) block_map.draw(screen, vp_in_block) bar.draw_all(screen, delta_time) pygame.display.flip()
import Helper import Menu import Player import MapGenerator from Room import Room pygame.init() # variables REFRESH_RATE = Helper.REFRESH_RATE DISPLAY_SURFACE = Helper.DISPLAY_SURFACE FPS_CLOCK = pygame.time.Clock() pygame.display.set_caption('Sekai Saviour') DISPLAY_SURFACE.fill((79, 51, 44)) player = Player.Player() MapGenerator.run_separator() game_state = 'Main_Menu' prev_game_state = '' is_paused = False running = True game_is_saved = False first_room = Room() second_room = Room() while running: while game_state == 'Main_Menu':