将最后单击的按钮作为变量

时间:2017-03-14 11:22:35

标签: python button pygame

这很难解释,但基本上我有一堆按钮,这些按钮同时拥有自己的类和唯一变量。我希望能够获得最后点击的按钮,但我不知道该怎么做。这是一些代码。

        a = len(towers)
        currentTower = towers[a-1]
        currentTower.damage += 150
        currentTower.radius += 100

这样做是获取最后放置的按钮,但我想获得最后一次点击。 Towers是一个变量,它将这些按钮存储在列表中。对不起,如果没有得到很好的解释。谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

要获取最后一次单击的按钮,您可以创建一个全局变量并在每个按钮“clicked”事件处理程序中设置它。全局变量可以指向按钮本身或指向数组中的索引。

答案 1 :(得分:0)

我不确定你是在谈论键盘上的鼠标按键还是按键,但我会在解释中考虑鼠标按键。

因此,如果我了解您的Point screenPoint = dragContext.getPoint(); View view = dragContext.getView(); double latitude = view.computePositionFromScreenPoint(screenPoint.getX(), screenPoint.getY()).getLatitude().degrees; double longitude = view.computePositionFromScreenPoint(screenPoint.getX(), screenPoint.getY()).getLongitude().degrees; Position objectPosition = new Position(LatLon.fromDegrees(latitude, longitude), 0); 有一些属性,例如class Tower:radius以及某些方法。您似乎希望将此类与鼠标按钮结合使用,并在按下特定鼠标按钮时对特定塔执行某些操作。好吧,我想你的脚本中有一个主循环正在检查pygame事件?然后我在这个循环中提出类似这样的东西:

damage

通过这种方式,通过使用字典# Before the loop running = True mousebutton_tower = {} # The loop while running: for event in pygame.event.get(): # If you quit the game if event.type == pygame.locals.QUIT: running = False # If a mouse button is pressed if event.type == pygame.locals.MOUSEBUTTONDOWN: if event.button not in mousebutton_tower.keys{}: mousebutton_tower[event.button] = Tower() tower = mousebutton_tower[event.button] # Do stuff about this Tower... ,每个鼠标按钮与特定的塔耦合,在主循环中,您可以通过检查按下的最后一个鼠标按钮轻松找到当前塔。如果您需要更多详细信息或者我对您的问题完全错误,请告诉我......