📄 snakecontrol.java
字号:
/********************************************************************************************/
/* */
/* SnakeControl.java */
/* */
/* 贪吃蛇键盘操纵监听模块 */
/* */
/* Programed by Luo Pengkui on 2004-9 */
/* */
/********************************************************************************************/
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
//------------------------------------ BEGIN ------------------------------------------------
public class SnakeControl implements KeyListener
{
SnakeModel model;
MatrixModel matrix;
public SnakeControl( MatrixModel matrix, SnakeModel model)
{
this.model = model;
this.matrix = matrix;
}
public void keyPressed(KeyEvent e)
{
int keyCode = e.getKeyCode();
if (model.mb_isRunning())
{ // 运行状态下,处理的按键
switch (keyCode)
{
case KeyEvent.VK_UP: // 上下左右
model.mb_setDirection(SnakeModel.UP);
break;
case KeyEvent.VK_DOWN:
model.mb_setDirection(SnakeModel.DOWN);
break;
case KeyEvent.VK_LEFT:
model.mb_setDirection(SnakeModel.LEFT);
break;
case KeyEvent.VK_RIGHT:
model.mb_setDirection(SnakeModel.RIGHT);
break;
case KeyEvent.VK_ADD: // 按 + - 翻页键 实现提速减速
case KeyEvent.VK_PAGE_UP:
model.mb_speedUp();
break;
case KeyEvent.VK_SUBTRACT:
case KeyEvent.VK_PAGE_DOWN:
model.mb_speedDown();
break;
case KeyEvent.VK_SPACE: // 按 空格键 或 P 键暂停
case KeyEvent.VK_P:
model.mb_changePauseState();
break;
default:
}
}
}
public void keyReleased(KeyEvent e)
{
}
public void keyTyped(KeyEvent e)
{
}
}
//------------------------------------- END -------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -