Ejemplo n.º 1
0
  def run(self):
    from yume.interface import Interface
    flags = pygame.SRCALPHA | pygame.DOUBLEBUF
    if self.fullscreen:
      flags |= pygame.FULLSCREEN
    self.screen = pygame.display.set_mode((yume.SCREEN_WIDTH, yume.SCREEN_HEIGHT),
        flags, 32)
    self.layer = pygame.Surface((yume.ARENA_WIDTH, yume.ARENA_HEIGHT))
    self.layer = self.layer.convert()
    pygame.display.set_caption('Yume Tower Defense')

    self.interface = Interface()
    Global.face = self.interface

    self.clock = pygame.time.Clock()
    i = 0
    while True:
      self.clock.tick(60)
      i += 1
      if i == 300:
        self.log(None)
        i = 0

      t1 = time.time()
      for event in pygame.event.get():
        if event.type == QUIT:
          return
        elif event.type == KEYDOWN:
          if event.key == K_ESCAPE or event.key == K_q:
            return
          elif event.key == K_F11:
            pygame.display.toggle_fullscreen()
          else:
            self.interface.press(event.key)
        elif event.type == MOUSEBUTTONDOWN:
          self.interface.click(event.pos, event.button)
        elif event.type is MOUSEBUTTONUP:
          pass

      self.interface.update()
      if self.layer.get_size() != self.screen.get_size():
        self.interface.draw(self.layer)
        pygame.transform.scale(self.layer, self.screen.get_size(), self.screen)
      else:
        self.interface.draw(self.screen)
      pygame.display.flip()
Ejemplo n.º 2
0
class Yume(object):
  def __init__(self):
    Global.yume = self
    self.log_entries = deque(maxlen=10)
    self.profile = False
    self.interface = None

  def log(self, text):
    self.log_entries.appendleft(text)

  def parse_args(self):
    p = OptionParser(usage="%prog [options]")
    p.add_option('-r', '--resolution', type='string')
    p.add_option('-f', '--fullscreen', action='store_true')
    p.add_option('-t', '--test', action='store_true', help="activate test mode")
    p.add_option('-p', '--profile', action='store_true')
    options, _ = p.parse_args()

    if options.resolution:
      match = re.match(r'(\d+)x(\d+)', options.resolution)
      if match:
        w, h = match.groups()
        yume.SCREEN_WIDTH, yume.SCREEN_HEIGHT = int(w), int(h)
    self.profile = bool(options.profile)
    self.fullscreen = bool(options.fullscreen)
    self.test_mode = bool(options.test)

  def run(self):
    from yume.interface import Interface
    flags = pygame.SRCALPHA | pygame.DOUBLEBUF
    if self.fullscreen:
      flags |= pygame.FULLSCREEN
    self.screen = pygame.display.set_mode((yume.SCREEN_WIDTH, yume.SCREEN_HEIGHT),
        flags, 32)
    self.layer = pygame.Surface((yume.ARENA_WIDTH, yume.ARENA_HEIGHT))
    self.layer = self.layer.convert()
    pygame.display.set_caption('Yume Tower Defense')

    self.interface = Interface()
    Global.face = self.interface

    self.clock = pygame.time.Clock()
    i = 0
    while True:
      self.clock.tick(60)
      i += 1
      if i == 300:
        self.log(None)
        i = 0

      t1 = time.time()
      for event in pygame.event.get():
        if event.type == QUIT:
          return
        elif event.type == KEYDOWN:
          if event.key == K_ESCAPE or event.key == K_q:
            return
          elif event.key == K_F11:
            pygame.display.toggle_fullscreen()
          else:
            self.interface.press(event.key)
        elif event.type == MOUSEBUTTONDOWN:
          self.interface.click(event.pos, event.button)
        elif event.type is MOUSEBUTTONUP:
          pass

      self.interface.update()
      if self.layer.get_size() != self.screen.get_size():
        self.interface.draw(self.layer)
        pygame.transform.scale(self.layer, self.screen.get_size(), self.screen)
      else:
        self.interface.draw(self.screen)
      pygame.display.flip()