关键是我需要找出(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]
。
答案 0 :(得分:1)
不是试图在屏幕空间内精确定位一个对象(这是一种常见的方法就是光线投射'),而不是检查游戏世界中对象的碰撞。
为此,循环遍历游戏世界中的对象并检查(x,y)点是否与对象框(rects)碰撞,如下所示:object.rect.collidepoint(pos)
。
如果 true ,您可以检查对象是否为Enemy
类型。