我有一个通过 for 循环运行的平铺地图,类似于:
def Draw_Level( x, y, column, obsticles, entities, image_cache ):
#Grass#
if column == "G":
g = Grass(x, y, image_cache)
entities.add(g)
#Plain Grass#
elif column == "P":
p = Plain_Grass(x,y, image_cache)
entities.add(p)
#Grass with yellow flower#
elif column == "F":
f = Grass_Flower(x,y, image_cache)
entities.add(f)
#Grass To Sand (50/50 split block) Direct#
elif column == "Y":
q = Grass_To_SandD(x,y, image_cache)
entities.add(q)
#Example If a class
class Grass(Entity):
def __init__(self, x, y, image_cache):
Entity.__init__(self)
self.image = functions.get_image("data/images/Grass.png", image_cache)
self.image.convert()
self.rect = Rect(x, y, 32, 32)
比如说,我的鼠标点击了其中一个,x 和 y 被确定为最接近的 32(这是块的宽度和高度)。我如何确定点击了哪个精灵?例如,如果我点击了一个“草”块,该块的坐标是绘制到屏幕上的,我该如何删除它?
实体 = 包含所有实体的列表
有没有办法从实体列表中调用它?它让我通过列表调用 Rect 感到困惑,所以这就是我被卡住的原因:S。