junglejourney

changeset 233:26066c4a9925

Added a banner to each level map.
author David Boddie <david@boddie.org.uk>
date Fri Aug 17 00:12:23 2012 +0200
parents d2d03d54402c
children 8862c859a18a
files tools/maps/make_maps.py
diffstat 1 files changed, 36 insertions(+), 6 deletions(-) [+]
line diff
     1.1 --- a/tools/maps/make_maps.py	Thu Aug 16 22:13:37 2012 +0200
     1.2 +++ b/tools/maps/make_maps.py	Fri Aug 17 00:12:23 2012 +0200
     1.3 @@ -23,7 +23,7 @@
     1.4  from tileimages import blank, tile_size, leaf1, leaf2, visited, flowers, \
     1.5                         flowers2, leaf4, leaf6, flowers3, leaf5, leaf3, \
     1.6                         exit, final_exit1, final_exit2, item_size, player, \
     1.7 -                       treasure_images
     1.8 +                       treasure_images, read_xpm
     1.9  
    1.10  image_sets = {
    1.11      100: [blank, flowers, leaf1, leaf2, exit],
    1.12 @@ -36,6 +36,11 @@
    1.13  
    1.14  tile_values_map = [0, 1, 0, 0, 0, 0, 2, 3, 4, 5, 6]
    1.15  
    1.16 +xf = 2
    1.17 +yf = 1
    1.18 +
    1.19 +scaled_tile_size = (int(tile_size[0] * xf), int(tile_size[1] * yf))
    1.20 +    
    1.21  class Mapper:
    1.22  
    1.23      start_rooms = {100: (5, 5), 36: (0, 0), 44: (9, 7), 4: (7, 0), 5: (5, 10),
    1.24 @@ -370,11 +375,6 @@
    1.25  
    1.26      images, wall_tile, floor_tiles = select_images(seed)
    1.27      
    1.28 -    xf = 2
    1.29 -    yf = 1
    1.30 -    
    1.31 -    scaled_tile_size = (int(tile_size[0] * xf), int(tile_size[1] * yf))
    1.32 -    
    1.33      scaled_room_size = (int(room_width * scaled_tile_size[0]),
    1.34                          int(room_height * scaled_tile_size[1]))
    1.35      
    1.36 @@ -462,11 +462,41 @@
    1.37      stem, suffix = os.path.splitext(name)
    1.38      level = 1
    1.39      
    1.40 +    title_image = Image.fromstring("P", (128, 48), "".join(
    1.41 +        read_xpm("../../images/title-screen.xpm", [(".", "\x00"), ("#", "\x01"), ("+", "\x02"), ("@", "\x03")])))
    1.42 +    title_image = title_image.resize((title_image.size[0]*4, title_image.size[1]*4),
    1.43 +                                     Image.LINEAR)
    1.44 +    
    1.45 +    overlay_image = Image.fromstring("P", (128, 115), "".join(
    1.46 +        read_xpm("../../images/overlay.xpm", [(".", "\x00"), ("#", "\x01"), ("@", "\x02"), ("+", "\x03")])))
    1.47 +    overlay_image = overlay_image.resize((overlay_image.size[0]*4, overlay_image.size[1]*4),
    1.48 +                                     Image.LINEAR)
    1.49 +    
    1.50 +    border = Image.new("P", (scaled_tile_size[0] * 18 + 1,
    1.51 +        title_image.size[1] + overlay_image.size[1] + scaled_tile_size[1]), 0)
    1.52 +    
    1.53 +    banner_positions = [(-scaled_tile_size[0] - border.size[0], -scaled_tile_size[1] - border.size[1]),
    1.54 +                        (scaled_tile_size[0], -scaled_tile_size[1] - border.size[1]),
    1.55 +                        (scaled_tile_size[0], scaled_tile_size[1]),
    1.56 +                        (-scaled_tile_size[0] - border.size[0], scaled_tile_size[1])]
    1.57 +    
    1.58      for seed in 100, 239, 183, 144:
    1.59      
    1.60          file_name = "%s%i%s" % (stem, level, suffix)
    1.61          make_map(file_name, width, height, room_width, room_height, seed)
    1.62          
    1.63 +        im = Image.open(file_name)
    1.64 +        bx, by = banner_positions[level - 1]
    1.65 +        if bx < 0:
    1.66 +            bx = im.size[0] + bx
    1.67 +        if by < 0:
    1.68 +            by = im.size[1] + by
    1.69 +        
    1.70 +        im.paste(border, (bx, by))
    1.71 +        im.paste(title_image, (bx + scaled_tile_size[0], by + int(scaled_tile_size[1] * 0.75)))
    1.72 +        im.paste(overlay_image, (bx + scaled_tile_size[0], by + int(scaled_tile_size[1] * 0.75) + title_image.size[1]))
    1.73 +        im.save(file_name)
    1.74 +        
    1.75          print "Created %s" % file_name
    1.76          level += 1
    1.77