我在摇摆和事件驱动的界面周围有点困难。我正在做一个学校项目,我们必须建立一个类似棋盘的东西,在那里我们可以放置碎片并移动它们并在输入时相互攻击。所以这就是我迷路的地方:
我设置了棋盘(有点)。我在JPanel上放置了许多tile(它是一个模型,它保存坐标和它上面的部分以及一个视图,它是JComponent的裸星子类)。 然后我有了可以移动,攻击等的棋子......
现在,当我点击瓷砖时,我必须做不同的事情。例如:
现在,前两个有点容易,我可以让棋子听到瓷砖,当点击瓷砖时,我可以显示对话框(如果瓷砖上有一个棋子),或者瓷砖是免费的地方它上面的棋子。
问题来自于我必须单击对话框上的按钮,然后单击另一个图块并进行多项通信。
我该怎么办? 假设我们正在谈论攻击按钮。
现在怎样?
我认为我应该让“攻击按钮监听器”听到磁贴。但它应该只在特定情况下以这种方式作出反应。当我点击一个磁贴并且我不想攻击时,如何让听众无所事事? 我不认为我可以只看事件对象(因为我无法直接修改它以便做我需要的东西吗?)。所以也许最好的事情是给听众一个对我的“游戏系统”对象的引用,该对象基本上控制游戏(转弯,可用的棋子,时间等),并且在那里有一个变量用于区分那种状态游戏在(移动,攻击,放置典当......)。
小切向问题,是否给听众以及诸如按钮引用周围事物(例如他们所处的框架或在这种情况下是游戏系统)的做法是好还是坏。从我的初学者的角度来看,如果一个按钮或一个监听器没有引用他们需要询问/访问以便工作他们基本上什么也做不了,但也许我错了,我正在做错误的方式。
我希望我能以清晰的方式揭露我的问题。谢谢大家的帮助。