def main(self): """Main""" # check for lock file self.check_game_lock() # IN GAME if self.ingame: self.activescr.init() elif not self.ingame and self.inmenu: pass while self.activescr.running: self.events() self.update() self.redraw(self.screen) PluginSystem.run() self.timer.tick(30) pygame.display.flip() # Save game if self.ingame: self.activescr.deinit() # remove lock self.remove_game_lock()
def handle_farmfield_events(self, event): # Mouse motion mx, my = pygame.mouse.get_pos() player = self.gamemanager.getplayer() # left mouse button if pygame.mouse.get_pressed()[0] == 1: pos = self.get_farmtile_pos_under_mouse() if pos: # Emit toolused event PluginSystem.emit_event("toolused", position=pos, gamemanager=self.gamemanager) # events for tools if event.type == pygame.MOUSEBUTTONDOWN and event.button == 1: # events for tools for tool in TOOLS: index = TOOLS.index(tool) rect = (10 + 50 * index, 10, 48, 48) if pygame.Rect(rect).collidepoint((mx, my)): farmlib.clicksound.play() player.selectedtool = tool
def main(self): """Main""" #check for lock file self.check_game_lock() #IN GAME if self.ingame: self.activescr.init() elif not self.ingame and self.inmenu: pass while self.activescr.running: self.events() self.update() self.redraw(self.screen) PluginSystem.run() self.timer.tick(30) pygame.display.flip() #Save game if self.ingame: self.activescr.deinit() #remove lock self.remove_game_lock()
def __init__(self): Window.__init__(self, (800, 600), (0, 0)) self.lazyscreen = None # Create gamemanager self.gamemanager = GameManager() # timers self.eventstimer = Timer() self.updatetimer = Timer() self.images = ImageLoader(imagesdata) self.notifyfont = pygame.font.Font("dejavusansmono.ttf", 12) self.font2 = pygame.font.Font("dejavusansmono.ttf", 18) # Install plugins self.coreplugin = PluginSystem.installPlugin(CorePlugin) self.coreplugin.gamewindow = self # background image bgimg = Image(self.images['background'], (0, 0)) self.addwidget(bgimg) # Create inventory window player = self.gamemanager.getplayer() self.inventorywindow = InventoryWindow(self.images, player) self.inventorywindow.hide() # create market window self.sellwindow = MarketWindow((400, 400), self.images, player, self.gamemanager) self.sellwindow.gamewindow = self # Market button marketbutton = Button("", (800 - 42, 10), bgimage=self.images['marketbutton']) marketbutton.connect("clicked", self.toggle_market) self.addwidget(marketbutton) # Inventory button inventorybutton = Button("", (800 - 42, 52), bgimage=self.images['inventorybutton']) inventorybutton.connect("clicked", self.toggle_inventory) self.addwidget(inventorybutton) # Create help window self.helpwindow = HelpWindow((500, 300)) # Create expbar self.expbar = ExpBar(player) self.addwidget(self.expbar) # labels self.moneylabel = Label("", (400, 5), align="center") self.addwidget(self.moneylabel) # Label for version versionlabel = Label("v. " + __VERSION__ + " (H for help)", (5, 580)) self.addwidget(versionlabel) # Is game running? self.running = False # Farm position offset (to center map) self.farmoffset = (212, 50) # Temp image for farmfield redraw if not modified self.tempfarmimage = None