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

2024-04-26 09:41:41 发布

您现在位置:Python中文网/ 问答频道 /正文

关键是我需要找出(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]。你知道吗


Tags: 对象inself类型targetforifis
1条回答
网友
1楼 · 发布于 2024-04-26 09:41:41

而不是试图在屏幕空间内精确定位一个对象(一种常见的方法是“光线投射”),检查是否与游戏世界中的对象发生碰撞。你知道吗

为此,在游戏世界中循环对象并检查(x,y)点是否与对象边界框(rects)发生碰撞,如:object.rect.collidepoint(pos)。你知道吗

如果true,则可以检查对象是否为Enemy类型。你知道吗

相关问题 更多 >