我制作的游戏里面有很多小小的生物"漂浮在一个小区域。该地区周围还有很多小食品颗粒。所有生物和食物颗粒都是类的初始化,分别位于creatures
和pellets
列表中。
有许多生物和许多颗粒。我需要一些方法来判断任何生物是否与任何食物位于同一位置,如果是,请移除颗粒并将{1}添加到creature.food
我知道我可以使用for循环,但我不知道如何。提前谢谢。
答案 0 :(得分:1)
你的问题有点模糊,所以我会做一些假设,试图帮助你。
如您所说,您有两个类:creatures
和pallets
。每个生物和托盘必须具有名为position
的属性,该属性在空间中提供其2D / 3D坐标。在每个帧中,将更新所有对象的位置。然后,您想知道某些creature
和某些pallet
之间是否存在某些冲突。为此,请使用以下命令比较两个位置列表:
list(set(list_creatures_positions).intersection(list2_pallets_positions))
如果结果为null,则表示没有碰撞。如果结果不为null,那么您将获得发生了collisons的所有位置的列表。对于此列表的所有位置,删除相应的托盘并在creature.food属性中添加一个托盘。这应该足够了。