图⑺
5.2 手机中的坐标系
手机中的xy坐标系与普通的xy坐标系有所不同,手机中,以屏幕的左上角为原点,水平方向为x轴,垂直方向为y轴,如下图⑻所示:
图⑻
5.3 游戏的具体实现环节
●数据的初始化; ●变量的定义及赋值;
●设置屏幕背景颜色为粉红色;
●设置画笔颜色为红色,并绘制贪吃蛇蛇身及食物; ●食物的产生及其产生位置的限制条件; ●蛇身的移动; ●手机按键功能实现;
●达到游戏结束条件时,游戏结束; ●游戏的运行与调试 ●游戏的模拟实现; ●游戏的打包生成; ●.jad及.jar文件的生成
5.4 具体编程的实现
5.4.1 主程序的编写及功能实现
//系统导入相应的包,其中有自动加载的,也有手动导入的部分。具
体导入包的情况,要依据程序中所用到的类的种类。
import javax.microedition.lcdui.Display; import javax.microedition.midlet.MIDlet; // myMIDlet类的具体实现
public class myMIDlet extends MIDlet { //实现两个Canvas类之间的切换
SnakeCanvas displayable = new SnakeCanvas(); public myMIDlet() {
// 获得当前MIDlet的Display对象,并设置 SnakeCanvas对象为当前的显示对象
Display.getDisplay(this).setCurrent(displayable); }
//系统自动生成代码,本程序中默认其初始状态 public void startApp() { }
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
} }
5.4.2 变量的定义及赋值
public class SnakeCanvas extends Canvas implements Runnable {} 定义贪吃蛇节点坐标:其中第二维下标为0的代表x坐标,第二维下标是1的代表y坐标。
int[][] snake = new int[200][2]; 定义已经使用的节点数量。 int snakeNum; 贪吃蛇运动方向。
0代表向上,1代表向下,2代表向左,3代表向右 (其中方向的控制变量依据手机开发平台的不同而不同,例如:Nokia手机开发平台中,-1表示向上、-2表示向下、-3表示向左、-4表示向右。这里所用的为Sun Java(TM) Wireless Toolkit 2.5.2)。
int point; //向上
private final int KEY_UP = 0; //向下
private final int KEY_DOWN = 1; //向左
private final int KEY_LEFT = 2; //向右
private final int KEY_RIGHT = 3; 定义游戏区域宽度。 int width, height; 定义蛇身单元宽度。
private final byte snakeWidth = 10; 利用布尔类定义状态:
是否处于暂停状态,true代表暂停; boolean isPaused = false; 是否处于运行状态,true代表运行。 boolean isRun = true; 定义食物的X坐标及Y坐标。 int foodX, foodY;
5.4.3.数据的初始化
初始化开始数据。 private void init() {}; 初始化屏幕大小。 public SnakeCanvas() { init();
width = getWidth();//设置游戏界面,宽度为屏幕宽度
相关推荐: