zoukankan      html  css  js  c++  java
  • 贪吃蛇Controller Java实现(二)

    package cn.tcc.snake.Controller;

    import java.awt.Point;
    import java.awt.event.KeyAdapter;
    import java.awt.event.KeyEvent;
    import java.util.Random;



    import cn.tcc.snake.antition.Food;
    import cn.tcc.snake.antition.Ground;
    import cn.tcc.snake.antition.Sanke;
    import cn.tcc.snake.listener.SnakeListener;
    import cn.tcc.snake.tcc.View.GamePanel;
    //处理用户按键事件有两种方法;
    //1.实现一个接口;
    //2.继承一个类 //只用到它的一个方法;
    import cn.tcc.snake.util.Global;

    public class Controller extends KeyAdapter implements SnakeListener{
         @Override
        public void SnakeMoved(Sanke snake) {
            // TODO Auto-generated method stub
             if(food.isSnakeEatFood(snake)){
                 snake.eatFood();
                 food.newFood(ground.getpoint());
             }
             if(ground.isSnakeEatRock(snake)){
                 snake.die();
             }
             if(snake.isEatBody()){
                 snake.die();
             }
            gamePanel.display(snake, food, ground);
        }
        private Sanke snake;
         private Food food;
         private Ground ground;
         private GamePanel gamePanel;
        public Controller(Sanke snake, Food food, Ground ground, GamePanel gamePanel) {
            super();
            this.snake = snake;
            this.food = food;
            this.ground = ground;
            this.gamePanel = gamePanel;
        }
        @Override
        public void keyPressed(KeyEvent e) {
             switch (e.getKeyCode()) {
            case KeyEvent.VK_UP:
             snake.changDirection(snake.UP);
                break;
            case KeyEvent.VK_DOWN:
            snake.changDirection(snake.DOWN);
            break;
            case KeyEvent.VK_LEFT:
            snake.changDirection(snake.LEFT);
            break;
            case KeyEvent.VK_RIGHT:
            snake.changDirection(snake.RIGHT);
            break;

            default:
                break;
            }
        }

    public void newGame(){
        food.newFood(ground.getpoint());
        snake.start();
    }
    }

  • 相关阅读:
    Android开发探秘之一:创建可以点击的Button
    TCP之心跳包实现思路
    Asp.net与Dojo交互:仪器仪表实现
    Asp.net Json数据解析的一种思路
    Asp.net通过Jquery操作WebService进行Ajax读写
    GridView自定义删除操作
    从客户端中检测到有潜在危险的request.form值
    JUC-Condition线程通信
    ModelAndView 配置与使用
    SpringMVC之ModelAndView的用法(转)
  • 原文地址:https://www.cnblogs.com/chenligeng/p/7997766.html
Copyright © 2011-2022 走看看