关键是我需要找出(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]
。你知道吗
而不是试图在屏幕空间内精确定位一个对象(一种常见的方法是“光线投射”),检查是否与游戏世界中的对象发生碰撞。你知道吗
为此,在游戏世界中循环对象并检查(x,y)点是否与对象边界框(rects)发生碰撞,如:
object.rect.collidepoint(pos)
。你知道吗如果true,则可以检查对象是否为
Enemy
类型。你知道吗相关问题 更多 >
编程相关推荐