⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 snakecontrol.java

📁 MVC设计模式早在面向对象语言Smalltalk-80中就被提出并在此后得到业界的广泛接受。它包括三类对象:(1)模型(Model)对象:是应用程序的主体部分。(2)视图(View)对象:是应用程序中
💻 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 + -