Source

pymissile / art.py

Full commit
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