snakecontrol.java
来自「MVC设计模式早在面向对象语言Smalltalk-80中就被提出并在此后得到业界」· Java 代码 · 共 75 行
JAVA
75 行
/********************************************************************************************/
/* */
/* 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 + =
减小字号Ctrl + -
显示快捷键?