# function to draw text on surface
def put_text (surface, x, y, size, (r,g,b), text):
- harisfont = os.path.join ("font", "HarisComic-2.ttf")
+ harisfont = os.path.join ("font", "harisgamefont.ttf")
textsurf = pygame.font.Font (harisfont, size).render (text, True, pygame.Color (r,g,b))
surface.blit (textsurf, (x, y))
def put_lines (surface, text_lines):
textsurfs = []
height = 0
- harisfont = os.path.join ("font", "HarisComic-2.ttf")
+ harisfont = os.path.join ("font", "harisgamefont.ttf")
for size, r, g, b, text in text_lines:
s = pygame.font.Font (harisfont, size).render (text, True, pygame.Color (r,g,b))
- # add 10 for spacing
- height = height + s.get_height() + 10
+ # add spacing
+ height = height + s.get_height()*1.5
textsurfs.append (s)
scrwidth = surface.get_width ()
scrheight = surface.get_height ()
i = 0
for s in textsurfs:
- surface.blit (s, (scrwidth/2 - s.get_width()/2, scrheight/2 - height/2+ i*s.get_height()+10))
+ surface.blit (s, (scrwidth/2 - s.get_width()/2, scrheight/2 - height/2+ i* (s.get_height()*1.5)))
i += 1
# function to ask a question and return answer
sel_answer = 1
while 1:
- textarray = [ [ 22, 128, 0, 0, question ] ]
+ textarray = [ [ 10, 128, 0, 0, question ] ]
i = 1
for answer in answers:
r, g, b = 0, 0, 216
else:
r, g, b = 0, 0, 0
- textarray.append ( [20, r, g, b, answer] )
+ textarray.append ( [10, r, g, b, answer] )
i += 1
elif event.key == pygame.K_RETURN:
return sel_answer
+# function displaying the contents of a container. Object must contain
+# items list
+# edgewidth - container edges to avoid drawing items in
+def display_container_contents (surface, obj, bgimage, edgewidth=0):
+
+ # get the number of items
+ numitems = len (obj.objects)
+ # number of rows
+ num_rows = (bgimage.get_height () - edgewidth*2) / 48
+ # number of cols
+ num_cols = (bgimage.get_width () - edgewidth*2) / 48
+
+ objposx = surface.get_width()/2 - bgimage.get_width()/2
+ objposy = surface.get_height()/2 - bgimage.get_height()/2
+
+ while 1:
+ # display the background for the container
+ surface.blit (bgimage, (objposx, objposy))
+
+ # display each item in the container
+ i = 0
+ j = 0
+
+ for item in obj.objects:
+ surface.blit (item.image, (objposx + edgewidth+ j*48, objposy + edgewidth + i*48))
+ j += 1
+ if j >= num_cols:
+ j = 0
+ i += 1
+ # only display as many items as will fit in the container
+ if i >= num_rows:
+ break
+
+ pygame.display.update ()
+ for event in pygame.event.get ():
+ if event.type == pygame.QUIT:
+ sys.exit (0)
+ elif event.type == pygame.KEYDOWN:
+ if event.key == pygame.K_ESCAPE:
+ return