为了账号安全,请及时绑定邮箱和手机立即绑定

需要将元组传递给子类来绘制三角形

需要将元组传递给子类来绘制三角形

吃鸡游戏 2022-06-28 16:03:20
我想从一个类中画一个三角形,所以我调用了这个函数pygame.draw.polygon()现在,问题是我需要以一种允许我计算三角形中心的方式传递这些点。我试图以这种方式一个一个地传递元组self.first_point = (int, int)self.second_point = (int, int)self.third_point = (int, int)这样我就可以访问单个元组值。然后像这样通过三分self.position = [self.first_point, self.second_point, self.third_point]但由于某种原因,它不起作用。这是我得到的错误File "C:/Users/oricc/PycharmProjects/designAChessboardChallange/display.py", line 178, in <module>    white_archer_3 = Archer(white, [(100, 100), (200, 200), (300, 300)])[(100, 100), (200, 200), (300, 300)]  File "C:/Users/oricc/PycharmProjects/designAChessboardChallange/display.py", line 132, in __init__    self.triangle = pygame.draw.polygon(game_window, colour, self.position)TypeError: points must be number pairs按对的数量,Pygame 文档给出了一个例子例如 [(x1, y1), (x2, y2), (x3, y3)]事实上,当我打印我通过的位置时,你可以从上面的错误中看到[(100, 100), (200, 200), (300, 300)]任何人都可以帮助解决这个问题吗?有没有另一种方法来计算中心而不像那样访问 xs 和 ys?
查看完整描述

2 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

你也可以这样做:self.first_point = (int(0), int(0))asint不是占位符,而是声明一个变量是一个整数str('0')将打印'0'你也可以输入这个


zero = 0 

str(zero) #'0'

int(zero) #0 

而且您不需要放置 rgb 元组,因为您可以将它们存储在这样的变量中


black = (0, 0, 0) 

Display = pygame.display.set_mode((800, 600))

Display.fill(black) 


查看完整回答
反对 回复 2022-06-28
?
开心每一天1111

TA贡献1836条经验 获得超13个赞

好的,我设法使它工作。你们都是对的,我现在应该知道我不能通过占位符,所以我想出了解决我的问题的方法如下:


class Archer(Unit):

    def __init__(self, colour, first_point, second_point, third_point):

        self.first_point = first_point

        self.second_point = second_point

        self.third_point = third_point

        position = [self.first_point, self.second_point, self.third_point]

        super().__init__(colour, position)


        print(self.position)

        self.triangle = pygame.draw.polygon(game_window, colour, self.position)

        self.triangle_outline = pygame.draw.polygon(game_window, gold, self.position, 5)

        self.triangle_inline = pygame.draw.polygon(game_window, gold, self.position, 5)

基本上我必须在超级函数之前声明三点自变量以及位置,以便我可以将它们作为“位置”传递给父类初始化程序。这个真的很有用!!


查看完整回答
反对 回复 2022-06-28
  • 2 回答
  • 0 关注
  • 91 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信