package game;
import java.awt.*;
import java.awt.event.*;
/**
* <p>Title: 俄罗斯方块游戏</p>
* <p>Description: 基于Internet的俄罗斯方块游戏</p>
* <p>Copyright: Copyright (c) 2005</p>
* <p>Company: WXHY/u2014ZJC</p>
* @author 赵建川
* @version 1.0
*/
/**
* 游戏 键盘的监听器
* @see Tetrics
* @see void keyPressed(KeyEvent e)
*/
public class KeyHandler implements KeyListener {
/**要监听的游戏类*/
private Tetrics m_tTetrics;
public KeyHandler() {
}
/**
* 监听器的构造器
* @param t Tetrics要监听的游戏类
*/
public KeyHandler(Tetrics t) {
m_tTetrics=t;
}
/**
* 重写KeyListener中的keyPressed这个方法包含字母键和非字母键
* @param e 键盘事件
*/
public void keyPressed(KeyEvent e) {
/**获得KeyCode*/
int nKey = e.getKeyCode();
/**游戏是否在玩*/
if (!m_tTetrics.getGameInPlay())
return;
/**游戏是否暂停*/
if (m_tTetrics.getGamePaused())
return;
switch (nKey) {
case 65: //左移 A a 或者←
case KeyEvent.VK_LEFT:
m_tTetrics.moveCurPiece( -1, 0, false);
m_tTetrics.repaint();
break;
case 68: //右移 D d 或者→
case KeyEvent.VK_RIGHT:
m_tTetrics.moveCurPiece(1, 0, false);
m_tTetrics.repaint();
break;
case 87: //变形 W w或者↑ [SPACE]
case KeyEvent.VK_UP:
m_tTetrics.moveCurPiece(0, 0, true);
m_tTetrics.repaint();
break;
case 83: //下移 S s或者↓
case KeyEvent.VK_DOWN:
case KeyEvent.VK_SPACE:
while (m_tTetrics.moveCurPiece(0, -1, false));
m_tTetrics.repaint();
break;
}
}
public void keyReleased(KeyEvent e) {
}
public void keyTyped(KeyEvent e)
{
}
}
游戏代码部分-------game包------KeyHandler.java
最新推荐文章于 2021-03-16 11:59:12 发布