Source

pymissile / art.py

import pygame

from constants import *

__art = {
'city':
"""
       +         
   R   +  +      
  +##  + +##     
 +#### ++###     
 + ### +# ##     
 +#### +#####  R 
 +#### +# ### +##
++########### + #
+############ +##
+# ## ## ## ### #
+################
+################
""",
'city_ruin':
"""
                 
                 
                 
                 
                 
                 
 +##             
++###           #
+#####     +# +##
+# ## ## +  ### #
+################
+################
""",
'silo':
"""
                 
                 
                 
     +######     
   ++#########   
  ++###########  
  +############  
 ++############# 
++###############
+################
+################
+################
""",
'silo_ruin':
"""
                 
                 
                 
                
                 
                 
                 
 ++#          +# 
++##         +###
+####       +####
+#######  +######
+################
""",
'cursor':
"""
  =+ +=  
   + +   
=  + +  =
+++   +++
    Y    
+++   +++
=  + +  =
   + +   
  =+ +=  
"""}

def get_art(key):
  return __art[key]
  
def build_surface(tick, img):
  size = 3
  splitted = img.split('\n')[1:-1]
  width = len(splitted[0])
  height = len(splitted)
  _city_surf = pygame.surface.Surface((width * size, height * size), pygame.SRCALPHA, 32)
  _city_surf.fill(BLACK)
  
  def getcolor(c):
    if c == '#': return GREYGREEN
    if c == '+': return MALLARD
    if c == ' ': return COLORLESS
    if c == '=': return BLACK
    if c == 'Y': return YELLOW
    
    if not (tick / 60) % 2:
      if c == 'G': return GREEN
      if c == 'R': return RED
    
    return YELLOW
        
  for y, line in enumerate(splitted):
    for x, char in enumerate(line):
      r = pygame.rect.Rect(x * size, y * size, size, size)
      _city_surf.fill(getcolor(char), r)
        
  return _city_surf
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.