Exemple #1
0
def add_background(world, properties, i_store):
    if len(properties) >= BGND_NUM_PROPERTIES:
        pt = point.Point(int(properties[BGND_COL]), int(properties[BGND_ROW]))
        name = properties[BGND_NAME]
        world.set_background(
            pt, entities.Background(name,
                                    image_store.get_images(i_store, name)))
Exemple #2
0
 def load_map(self, index):
     self.pampuch = None
     self.monsters = list()
     self.game_state.goal = 0
     self.game_state.points_level = 0
     files.Textures.load(index)
     map_strings = files.load_map(index, self.game_state.mode)
     self.move_resize(
         [(self.master.surface.get_size()[i] -
           (map_strings.get_dimensions()[i] * constants.SQUARE_SIZE)) // 2
          for i in range(2)], 1, [
              map_strings.get_dimensions()[i] * constants.SQUARE_SIZE
              for i in range(2)
          ], False)
     self.map_widgets = Md_array(map_strings.get_dimensions())
     for pos, field in map_strings.enumerated:
         self.map_widgets[pos] = entities.Background(
             self, [pos[i] * constants.SQUARE_SIZE for i in range(2)],
             [constants.SQUARE_SIZE for _ in range(2)],
             pos=pos)
         if field == constants.CHAR_WALL:
             self.map_widgets[pos].attr.type = 'wall'
             self.map_widgets[pos].set(image=files.Textures.wall)
         elif field == constants.CHAR_EMPTY:
             self.map_widgets[pos].attr.type = 'empty'
             self.map_widgets[pos].set(image=files.Textures.empty)
         else:
             self.map_widgets[pos].attr.img_empty = files.Textures.empty
             self.map_widgets[pos].attr.type = 'point'
             self.map_widgets[pos].set(image=files.Textures.point)
             self.game_state.goal += 1
         if field == constants.CHAR_PAMPUCH:
             if self.pampuch is not None:
                 raise FileFormatError(
                     'Pampuch must be instanced exactly once per level',
                     level_index=index)
             self.pampuch = pos
         elif field == constants.CHAR_MONSTER:
             self.monsters.append(pos)
     if self.pampuch is None:
         raise FileFormatError(
             'Pampuch must be instanced exactly once per level',
             level_index=index)
     self.pampuch = entities.Pampuch(self, self.pampuch)
     self.pampuch.attr.img_dead = files.Textures.dead.copy()
     for index, pos in enumerate(self.monsters):
         self.monsters[index] = entities.Monster(self, pos, self.pampuch)
     for m in self.monsters:
         others = self.monsters.copy()
         others.remove(m)
         m.colleagues = others
     self.children = self.children[1:] + self.children[:1]
Exemple #3
0
def handle_mouse_button(view, world, event, entity_select, i_store):
   mouse_pt = mouse_to_tile(event.pos, view.tile_width, view.tile_height)
   tile_view_pt = worldview.viewport_to_world(view.viewport, mouse_pt)
   if event.button == mouse_buttons.LEFT and entity_select:
      if is_background_tile(entity_select):
         worldmodel.set_background(world, tile_view_pt,
            entities.Background(entity_select,
               image_store.get_images(i_store, entity_select)))
         return [tile_view_pt]
      else:
         new_entity = create_new_entity(tile_view_pt, entity_select, i_store)
         if new_entity:
            worldmodel.remove_entity_at(world, tile_view_pt)
            worldmodel.add_entity(world, new_entity)
            return [tile_view_pt]
   elif event.button == mouse_buttons.RIGHT:
      worldmodel.remove_entity_at(world, tile_view_pt)
      return [tile_view_pt]

   return []
Exemple #4
0
def create_default_background(img):
   return entities.Background(image_store.DEFAULT_IMAGE_NAME, img)