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

📄 map.java

📁 一款修改过的手机贪食蛇游戏
💻 JAVA
字号:
/* * Map.java * * Created on June 19, 2007, 1:52 AM * * To change this template, choose Tools | Template Manager * and open the template in the editor. */package hello;/** * * @author jiabei */public class Map {        private final int width;    private final int height;    private final int pixelWidth;    private final int pixelHeight;        private final int snakeNum;    private final boolean canCollide;    private final int maxFruitNum;    private final int victoryFruitNum;            private Snake[] currentSnake;        private int fruitNum;    private int aliveSnakeNum;            private int[][] currentMap;    private Fruit[] fruit;                /** Creates a new instance of Map */    public Map(int maxFruitNum, int victoryFruitNum, int pixelWidth, int pixelHeight, int width, int height, int snakeNum, Snake[] snake, boolean canCollide) {        this.pixelWidth = pixelWidth;        this.pixelHeight = pixelHeight;                this.width = width;        this.height = height;        this.currentMap = new int[height][width];        this.snakeNum = snakeNum;        aliveSnakeNum = snakeNum;        this.currentSnake = snake;        this.canCollide = canCollide;        this.maxFruitNum = maxFruitNum;        this.victoryFruitNum = victoryFruitNum;                     fruit = new Fruit[maxFruitNum];    }        public int getPixelWidth() {        return pixelWidth;    }        public int getPixelHeight() {        return pixelHeight;    }        public boolean decressSnake() {        if (aliveSnakeNum > 0) {            aliveSnakeNum --;        }        return aliveSnakeNum > 0;    }        public boolean canCollide() {        return canCollide;    }        public boolean isOver() {        boolean isOver = false;        for (int i = 0; i < getSnakeNum(); i ++)            if (currentSnake[i].getEatedFruitNum() >= victoryFruitNum) {                isOver = true; break;            }        return (aliveSnakeNum <= 1 || isOver);    }        private int key2Direction(int keyState) {        if ((keyState & GamingCanvas.LEFT_PRESSED) != 0) {            //System.out.println("Left!");            return Snake.DIRECTION_LEFT;        } else if ((keyState & GamingCanvas.RIGHT_PRESSED) != 0) {            //System.out.println("Right!");            return Snake.DIRECTION_RIGHT;        } else if ((keyState & GamingCanvas.UP_PRESSED) != 0) {            //System.out.println("Up!");            return Snake.DIRECTION_UP;        } else if ((keyState & GamingCanvas.DOWN_PRESSED) != 0) {            //System.out.println("Down!");            return Snake.DIRECTION_DOWN;        }        return Snake.DIRECTION_NOCHANGE;    }        public void deleteFruit(int k) {        for (int i = k; i < fruitNum - 1; i ++) {            fruit[i] = fruit[i + 1];        }        fruitNum --;    }        public int update(int keyState) {        if (fruitNum < maxFruitNum) {            fruit[fruitNum] = Fruit.getRandomFruit(this);            fruitNum ++;                    }                    for (int i = 0; i < snakeNum; i ++) if (currentSnake[i].isAlive()) {            if (currentSnake[i].getControl() == Snake.CONTROL_KEYBOARD) {                currentSnake[i].setDirection(key2Direction(keyState));            } else {                currentSnake[i].setDirection(Ai.getDirection(this, i));            }                    }        int state = 0;        for (int i = 0; i < snakeNum; i ++) if (currentSnake[i].isAlive()) {            state = Snake.update(this, i, canCollide);        }        return state;                }        public int getWidth() {        return width;    }        public int getHeight() {        return height;    }        public int getSnakeNum() {        return snakeNum;    }        public Snake getCurSnake(int i) {        if (i >= 0 && i < snakeNum) {            return currentSnake[i];        }        return null;    }        public int getFruitNum() {        return fruitNum;    }        public boolean inBound(Point p) {        return (p.getX()>= 0 && p.getX() < width && p.getY() >= 0 && p.getY() < height );    }        public Fruit getFruit(int i) {        if (i >= 0 && i < fruitNum) {            return fruit[i];        }         return null;    }    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -