gamingcanvas.java

来自「一款修改过的手机贪食蛇游戏」· Java 代码 · 共 99 行

JAVA
99
字号
/* * GamingCanvas.java * * Created on June 19, 2007, 1:02 AM * * To change this template, choose Tools | Template Manager * and open the template in the editor. */package hello;import javax.microedition.lcdui.*;import javax.microedition.lcdui.game.*;import java.util.*;import java.io.*;import javax.microedition.media.*;import javax.microedition.media.control.*;/** * * @author jiabei */public class GamingCanvas extends GameCanvas implements Runnable {        private Map map;        private Display display;    private Canvas menuCanvas;               private long frameDelay;                private boolean sleeping;    int yPixels;    int xPixels;        /** Creates a new instance of GamingCanvas */    public GamingCanvas(Display display, Canvas menuCanvas, long frameDelay, int maxFruitNum, int victoryFruitNum, int width, int height, int snakeNum, Snake[] snake, boolean canCollide) {        super(true);        this.display = display;        this. menuCanvas  = menuCanvas;        this.frameDelay = frameDelay;        yPixels = this.getHeight() / height;        xPixels = this.getWidth() / width;        //System.out.println("" + this.getHeight() + "," + this.getWidth());        map = new Map(maxFruitNum, victoryFruitNum, xPixels * width, yPixels * height, width, height, snakeNum, snake, canCollide);            }        public void start() {        sleeping = false;        Thread t =  new Thread(this);        t.start();            }        public void stop() {        sleeping = true;        display.setCurrent(menuCanvas);    }        public void run() {        Graphics g = getGraphics();        while (!sleeping) {            update();            draw(g);            try {                Thread.sleep(frameDelay);                            } catch (InterruptedException e) {                        }        }    }        public void update() {        int keyState = getKeyStates();        //System.out.println(keyState);        int currentState = map.update(keyState);        if (map.isOver()) {            stop();        }    }        private void draw(Graphics g) {        Font font = Font.getDefaultFont();        g.setColor(255, 255, 255);        g.fillRect(0, 0, map.getPixelWidth(), map.getPixelHeight() + map.getSnakeNum() * font.getHeight());        g.setColor(100, 0, 0);        g.drawRect(0, 0, map.getPixelWidth(), map.getPixelHeight());        for (int i = 0; i < map.getSnakeNum(); i ++) {            map.getCurSnake(i).drawSnake(g, xPixels, yPixels, 1, font.getHeight() * i + map.getPixelHeight());        }        for (int i = 0; i < map.getFruitNum(); i ++) {            map.getFruit(i).drawFruit(g, xPixels, yPixels);        }        flushGraphics();    }           }

⌨️ 快捷键说明

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