如何从python中的另一个类中获取内容?

时间:2013-11-15 19:22:33

标签: python pygame sprite

我在Oranges课程中的绘制函数中创建了两个不同的类WitchesMyGame以及另外一个MyGame我需要从Oranges获取位置class并将其添加到我的Witches类中的位置。例如女巫的新位置=橙色的位置 - 女巫的位置。我怎样才能做到这一点?

class Orange(object):
    def __init__(self, position, image):
        self.image = image
        self.position = (random.randint(350, 500), random.randint(250, 350))  

    def draw(self, surface):
        surface.blit(self.image, self.position)

class Witch(object):
    def __init__(self, position, image):
        self.image = image
        self.position = (random.randint(0, 760), random.randint(0, 0))
        self.position1 = (random.randint(0, 0), random.randint(0, 520))
        self.position2  = (random.randint (0, 760), random.randint(480, 520))
        self.position3 = (random.randint (730, 760), random.randint(0, 520))

    def draw(self, surface):
        surface.blit(self.image, self.position)

class MyGame(object):
    def draw(self):

1 个答案:

答案 0 :(得分:1)

你的代码真的很长,但只是为了减去橙色和女巫类的位置,以下就足够了。您必须为橙色和巫婆类创建一个对象,然后执行以下操作。我不知道你是否在问一些其他事情,但是从你的问题来看,这就是我所能说的。

new_orange=Orange(...input parameters...)
new_witch=Witch(...input parameters...)
new_witch.position=new_orange.position-new_witch.position

注意:您拥有的两个位置是元组,因此我建议您查看地图功能并执行以下操作:

new_witch.position=tuple(map(lambda x,y:x-y,new_orange.position,new_witch.position))

这将为您提供可迭代对象,您可以将其转换为元组,我希望将其作为动机去寻找lambda和可迭代对象。