如何在屏幕上确定对象的类型(pygame)?

时间:2016-03-30 17:37:23

标签: python pygame

关键是我需要找出(x,y)

的对象类型
def choose_target(self, screen):
    for y in range(-tower_range, tower_range + 1):
        for x in range(-tower_range, tower_range + 1):
            if screen[self.x + x, self.y + y] is Enemy:
                self.target = screen[self.x + x, self.y + y]

我认为它应该是这样的,但它出现了我无法从screen获取信息。怎么可能让我的塔记住一个目标?现在,我也不确定这个self.target = screen[self.x + x, self.y + y]

1 个答案:

答案 0 :(得分:1)

不是试图在屏幕空间内精确定位一个对象(这是一种常见的方法就是光线投射'),而不是检查游戏世界中对象的碰撞。

为此,循环遍历游戏世界中的对象并检查(x,y)点是否与对象框(rects)碰撞,如下所示:object.rect.collidepoint(pos)

如果 true ,您可以检查对象是否为Enemy类型。