我在Oranges
课程中的绘制函数中创建了两个不同的类Witches
和MyGame
以及另外一个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):
答案 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和可迭代对象。