2017-10-06 101 views
0

所以我不知道如何解释它,但如果你看看这个代码,你可能会有所帮助。需要帮助创建一个Python中的列表和函数的字典

class tower: 
    def __init__(self, name, namex, namey, x, y, width, height, nameimg): 
     self.name = name 
     self.namex = namex 
     self.namey = namey 
     self.x = x 
     self.y = y 
     self.width = width 
     self.height = height 
     self.nameimg = nameimg 

    def getname(self): 
     return self.name 
    def getnamex(self): 
     return self.namex 
    def getnamey(self): 
     return self.namey 
    def getx(self): 
     return self.x 
    def gety(self): 
     return self.y 
    def getwidth(self): 
     return self.width 
    def getheight(self): 
     return self.height 
    def getnameimg(self): 
     return self.nameimg 


background = tower("background", "backgroundx", "backgroundy", 0, 0, 1280, 720, backgroundImg) 
ppsh = tower("ppsh", "ppshx", "ppshy", 1127, 140, 120, 40, ppshImg) 
trenchgun = tower("trenchgun", "trenchgunx", "trenchguny", 1207, 140, 120, 27, trenchgunImg) 
thompson = tower("thompson", "thompsonx", "thompsony", 1127, 120, 120, 39, thompsonImg) 
colt = tower("colt", "coltx", "colty", 1, 1, 70, 46, coltImg) 
mg = tower("mg", "mgx", "mgy", 1, 1, 135, 27, mgImg) 

towers = [background, ppsh, trenchgun, thompson, colt, mg] 

def game_loop(): 
    positions = { 
     (background.getnamex()): (background.getx()), 
     (background.getnamey()): (background.gety()), 
     (ppsh.getnamex()): (ppsh.getx()), 
     (ppsh.getnamey()): (ppsh.gety()), 
     (trenchgun.getnamex()): (trenchgun.getx()), 
     (trenchgun.getnamey()): (trenchgun.gety()), 
     (thompson.getnamex()): (thompson.getx()), 
     (thompson.getnamey()): (thompson.gety()), 
     (colt.getnamex()): (colt.getx()), 
     (colt.getnamey()): (colt.gety()), 
     (mg.getnamex()): (mg.getx()), 
     (mg.getnamey()): (mg.gety()), 
     } 

如果你看看底部我希望把它,所以我不必每次都写了一个新的生产线,但是从上面的列表采取。这是我作为一个例子的尝试。

towers = [background, ppsh, trenchgun, thompson, colt, mg] 

def game_loop(): 
    for i in towers: 
     positions = { 
      (i.getnamex()): (i.getx()), 
      (i.getnamey()): (i.gety()), 
      } 

如果任何人都可以帮助它将不胜感激,我一直坚持这一段时间了。

回答

2

您可以定义一个空的字典,并根据需要添加键值对

def game_loop(): 
    global towers 
    positions={} 
    for i in towers: 
     positions[i.getnamex()]= i.getx() 
     positions[i.getnamey()]= i.gety() 
    return positions 

positions=game_loop()