class Taishou(easy_pygame.GameObject): def __init__(self, screen, pos, chengchi, db): """ pos=屏幕位置 name=城池名称 db=DB数据""" easy_pygame.GameObject.__init__(self) self.screen = screen self.pos = pos self.db = db self.chengchi = chengchi self.size = (800, 560) self.taishou = self.db.info_chengchi[chengchi]['太守'] self.sf = pygame.Surface(self.size) wj_list = db.shili[db.info_chengchi[chengchi]['势力']][chengchi] self.wjlist = WujiangList(self.sf, (250, 10), db.get_wujiang(wj_list), size=(550, 500), radio=True) self.wjlist.set_checked(self.taishou) self.img = self.db.info_wujiang[self.taishou]['大身像'] self.info = easy_pygame.Label(self.sf, (10, 260), size=(240, 300), alpha=200, touch=True) self.update() def update(self): self.img = self.db.info_wujiang[self.taishou]['大身像'] ts = self.db.info_wujiang[self.taishou] cc = self.db.info_chengchi[self.chengchi] self.info.clear() self.info.set_font(('../wqy-zenhei.ttc', 18)) self.info.add(self.chengchi, (255, 255, 0)) self.info.add('太守:') self.info.add(self.taishou, (255, 255, 0)) self.info.endl(3) zz = cc['农业资源'] * (ts['智力'] - 50) / 50.0 zz = int(zz) zs = cc['农业资源'] + zz self.info.add('农业资源:' + str(zs)) if zz >= 0: self.info.add(' (+' + str(zz) + ')', (255, 0, 0)) else: self.info.add(' (' + str(zz) + ')', (255, 255, 0)) self.info.endl(3) zz = cc['商业资源'] * (ts['智力'] - 50) / 50.0 zz = int(zz) zs = cc['商业资源'] + zz self.info.add('商业资源:' + str(zs)) if zz >= 0: self.info.add(' (+' + str(zz) + ')', (255, 0, 0)) else: self.info.add(' (' + str(zz) + ')', (255, 255, 0)) self.info.endl(3) self.info.add('城池防御: 15%') self.info.add('+' + str(ts['武力'] / 10) + '%', (255, 0, 0)) self.info.endl(3) def Show(self): self.sf.blit(self.img, (10, 10)) self.wjlist.Show() self.info.Show() self.screen.blit(self.sf, self.pos) def Event(self, event): if self.info.Event(event): return True if self.wjlist.Event(event): wj = self.wjlist.get_checked() if wj != self.taishou: self.taishou = wj self.update() return True