📄 gamingcanvas.java
字号:
/* * 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -