J2ME连连看代码.docx
- 文档编号:2207715
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:22
- 大小:20.23KB
J2ME连连看代码.docx
《J2ME连连看代码.docx》由会员分享,可在线阅读,更多相关《J2ME连连看代码.docx(22页珍藏版)》请在冰豆网上搜索。
J2ME连连看代码
连连看的代码自己看吧
//J2ME连连看源代码(含详细注释)
//界面类代码
importjavax.microedition.lcdui.Canvas;
importjavax.microedition.lcdui.Graphics;
/**
*连连看游戏界面
*/
publicclassLinkCanvasextendsCanvasimplementsRunnable{
GameEngineengine;//游戏逻辑类
intwidth;//屏幕宽度
intheight;//屏幕高度
publicLinkCanvas(){
engine=newGameEngine();//创建对象
width=getWidth();//获得屏幕的高度和宽度
height=getHeight();
newThread(this).start();//启动线程
}
/**
*绘制方法
*/
protectedvoidpaint(Graphicsg){
clearScreen(g);//清屏
engine.paintMap(g);//绘制地图
engine.paintSelectArea(g);//绘制选择框
engine.paintLinkLine(g);//绘制连线
}
/**
*清屏方法
*@paramg画笔
*/
privatevoidclearScreen(Graphicsg){
g.setColor(0xffffff);
g.fillRect(0,0,width,height);
g.setColor(0);
}
publicvoidkeyPressed(intkeyCode){
intaction=getGameAction(keyCode);
switch(action){
caseUP:
engine.moveUP();
break;
caseDOWN:
engine.moveDown();
break;
caseLEFT:
engine.moveLeft();
break;
caseRIGHT:
engine.moveRight();
break;
caseFIRE:
engine.fire();//选择块
break;
}
}
publicvoidrun(){
try{
while(true){
Thread.sleep(100);//延时
engine.action();//每次判断逻辑
repaint();
}
}catch(Exceptione){
e.printStackTrace();
}
}
}
importjavax.microedition.lcdui.Display;
importjavax.microedition.midlet.MIDlet;
importjavax.microedition.midlet.MIDletStateChangeException;
//MID类
publicclassMidletGameextendsMIDlet{
protectedvoiddestroyApp(booleanb)throwsMIDletStateChangeException{
System.out.println("销毁");
}
protectedvoidpauseApp(){
System.out.println("暂停");
}
protectedvoidstartApp()throwsMIDletStateChangeException{
Display.getDisplay(this).setCurrent(newLinkCanvas());
System.out.println("开始");
}
}
//逻辑类源代码
importjava.util.*;
importjavax.microedition.lcdui.*;
/**
*游戏数据和逻辑类
*/
publicclassGameEngine{
privateintselectTileNum=0;//选中块的个数
privateintfirstRow;//第一个选择块的行号和列号
privateintfirstCol;
privateintsecondRow;//第二个选择块的行号和列号
privateintsecondCol;
privateintcRow;//当前选择框,默认在左上角
privateintcCol;//当前选择框的列号
privatefinalintMAX_ROW=10;//最大行数
privatefinalintMAX_COL=10;//最大列数
privateint[][]map=newint[MAX_ROW][MAX_COL];//地图数据,0代表空,数据1-10分别代表十种不同的结构
privateRandomran=newRandom();//随机数对象
privatefinalintLEFTX=20;//地图区域左上角的X和Y坐标
privatefinalintLEFTY=50;
privatefinalintTILE_WIDTH=20;//每个单元格的宽度
privatefinalintTILE_HEIGHT=20;//每个单元格的高度
privateintlinkType;//连线类型
privatefinalintNO_LINK=0;//无法连线
privatefinalintH_LINK=1;//水平连线
privatefinalintV_LINK=2;//垂直联系
privatefinalintONE_CORNER_FIRSTX=3;//一个拐点,先移动x
privatefinalintONE_CORNER_FIRSTY=4;//一个拐点,先移动y
privatefinalintTWO_CORNER=5;//两个拐点,待完善
/**
*两次拐弯的行号和列号
*数据格式为:
*第一个拐点的行号,第一个拐点的列号,第二个拐点的行号,第二个拐点的列号
*/
int[]p=newint[4];
publicGameEngine(){
//初始化地图数据
initMap();
}
/**
*初始化地图数据
*/
privatevoidinitMap(){
/**地图数据
0,0:
10,1:
10,2:
10,3:
10,4:
10,5:
10,6:
10,7:
10,8:
10,9:
1//0
1,0:
21,1:
21,2:
21,3:
21,4:
21,5:
21,6:
21,7:
21,8:
21,9:
2//1
2,0:
32,1:
32,2:
32,3:
32,4:
32,5:
32,6:
32,7:
32,8:
32,9:
3//2
3,0:
43,1:
43,2:
43,3:
43,4:
43,5:
43,6:
43,7:
43,8:
43,9:
4//3
4,0:
54,1:
54,2:
54,3:
54,4:
54,5:
54,6:
54,7:
54,8:
54,9:
5//4
5,0:
65,1:
65,2:
65,3:
65,4:
65,5:
65,6:
65,7:
65,8:
65,9:
6//5
6,0:
76,1:
76,2:
76,3:
76,4:
76,5:
76,6:
76,7:
76,8:
76,9:
7//6
7,0:
87,1:
87,2:
87,3:
87,4:
87,5:
87,6:
87,7:
87,8:
87,9:
8//7
8,0:
98,1:
98,2:
98,3:
98,4:
98,5:
98,6:
98,7:
98,8:
98,9:
9//8
9,0:
109,1:
109,2:
109,3:
109,4:
109,5:
109,6:
109,7:
109,8:
109,9:
10//9
*/
for(introw=0;row for(intcol=0;col
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- J2ME 连连 代码