在我制作的游戏中,我有两种不同的mousePressed()方法,一种用于单发射击,一种用于自动射击,如果您获得了自动武器,它将mousePressed()方法从单发射击改为一种自动射击。

稍后,当您丢失自动武器时,它会退回到mousePressed()进行单发射击(我通过使用两个MouseAdapter并使用addMouseListenerremoveMouseListener来执行此操作)。

问题是,如果您在失去无声武器的过程中继续按住鼠标,则仍会自动射击,直到释放鼠标然后再次按下它,它会切换为单发mousePressed()

我如何才能使它在按下鼠标时切换MouseAdapter

最佳答案

我建议您实现两个类:NormalWeaponAutomaticWeapon或类似的东西。这些类应实现一个fire方法,该方法将不断触发直到不再有子弹为止。您的MouseAdapter仍将正常发送fire命令,但不再触发。这将“迫使”玩家释放按钮,并且还可以防止在没有子弹留下时继续射击。

07-24 20:44