public void action(){ init(); addMouseListener(); Timer timer= new Timer(); TimerTask task= new TimerTask(){ @Override public void run() { if(state==GameState.runing){ index++; if(index>b_planeInterval*s_planeInterval*buttet_sInterval*bomb_sInterval*bulletInterval){ index=1; } enemyEnter(); step(); outOfBounds(); shoot(); hit(); impact(); check(); } repaint(); } }; timer.schedule(task, 10,10); }
时间: 2024-04-21 12:25:56 浏览: 8
这是一个名为 action 的方法,用于启动游戏循环。在该方法中,首先调用了 init 方法,用于初始化游戏状态和对象。接着,调用了 addMouseListener 方法,用于添加鼠标监听器。然后,创建了一个 Timer 对象和一个 TimerTask 对象,在 TimerTask 对象的 run 方法中,首先判断游戏状态是否为运行状态,如果是,就执行一系列操作,包括增加计数器 index,检查计数器是否达到一定值,如果达到了,就重置计数器并使敌人进入游戏、移动、越界、射击、碰撞、检查游戏状态等。然后,调用 repaint 方法重绘界面。最后,使用 Timer 对象的 schedule 方法,以指定的延迟和周期执行 TimerTask 对象。这个方法通常在游戏开始时被调用,用于启动游戏循环。
相关问题
public void addMouseListener(){ MouseAdapter mouseAdapter=new MouseAdapter(){ public void mouseClicked(MouseEvent e) { if(state==GameState.pause||state==GameState.start){ state=GameState.runing; } else if(state==GameState.gameover){ init(); state=GameState.runing; } else { state=GameState.pause; } }
这是一个名为 addMouseListener 的方法。在这个方法中,首先创建了一个 MouseAdapter 的对象 mouseAdapter,重写了其中的 mouseClicked 方法。在 mouseClicked 方法中,首先判断游戏状态是否为 pause 或 start,如果是,则将游戏状态改为 runing,即开始游戏。如果游戏状态为 gameover,则调用 init 方法重新初始化游戏,并将游戏状态改为 runing。如果游戏状态为 runing,则将游戏状态改为 pause,即暂停游戏。最后,将 mouseAdapter 对象添加为游戏窗口的鼠标监听器。
addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent event){ x1=event.getX(); y1=event.getY(); } }); 作用
这段代码通过 `addMouseListener` 方法向一个组件添加一个鼠标事件监听器。这个监听器是通过匿名内部类方式实现的 `MouseAdapter` 类的一个实例。`MouseAdapter` 是一个实现了 `MouseListener` 接口的抽象适配器类,可以在子类中选择性地覆盖感兴趣的方法。
在这个示例中,我们覆盖了 `MouseAdapter` 中的 `mousePressed` 方法,并在该方法中获取了鼠标事件的坐标值。具体来说,当用户在该组件上按下鼠标按钮时,系统会自动创建一个 `MouseEvent` 对象,并将其传递给 `mousePressed` 方法。通过调用 `getX()` 和 `getY()` 方法,我们可以获取鼠标事件的坐标值。这些坐标值被存储在 `x1` 和 `y1` 变量中,以供后续使用。
因此,这段代码的作用是向一个组件添加一个鼠标事件监听器,并在用户按下鼠标按钮时获取鼠标事件的坐标值。这通常用于捕获用户的鼠标操作,例如绘制图形、进行拖放操作等等。