没有合适的资源?快使用搜索试试~ 我知道了~
j2me 连连看游戏源码!
5星 · 超过95%的资源 需积分: 3 8 下载量 42 浏览量
2011-07-03
21:07:40
上传
评论
收藏 225KB DOC 举报
温馨提示
试读
16页
连连看实现的游戏引擎代码!连连看实现的游戏引擎代码!连连看实现的游戏引擎代码!连连看实现的游戏引擎代码!连连看实现的游戏引擎代码!连连看实现的游戏引擎代码!连连看实现的游戏引擎代码!
资源推荐
资源详情
资源评论
//界面类代码
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
/**
* 连连看游戏界面
*/
public class LinkCanvas extends Canvas implements Runnable{
/**游戏逻辑类*/
GameEngine engine;
/**屏幕宽度*/
int width;
/**屏幕高度*/
int height;
public LinkCanvas(){
//创建对象
engine = new GameEngine();
//获得屏幕的高度和宽度
width = getWidth();
height = getHeight();
//启动线程
Thread t = new Thread(this);
t.start();
}
/**
* 绘制方法
*/
protected void paint(Graphics g) {
//清屏
clearScreen(g);
//绘制地图
engine.paintMap(g);
//绘制选择框
engine.paintSelectArea(g);
//绘制连线
engine.paintLinkLine(g);
}
/**
* 清屏方法
* @param g 画笔
*/
private void clearScreen(Graphics g){
g.setColor(0xffffff);
g.fillRect(0, 0, width, height);
g.setColor(0);
}
public void keyPressed(int keyCode){
int action = getGameAction(keyCode);
switch(action){
case UP:
engine.moveUP();
break;
case DOWN:
engine.moveDown();
break;
case LEFT:
engine.moveLeft();
break;
case RIGHT:
engine.moveRight();
break;
case FIRE:
engine.fire();//选择块
break;
}
}
public void run() {
try{
while(true){
//延时
Thread.sleep(100);
//每次判断逻辑
engine.action();
repaint();
}
}catch(Exception e){
e.printStackTrace();
}
}
}
//逻辑类源代码
import java.util.*;
import javax.microedition.lcdui.*;
/**
* 游戏数据和逻辑类
*/
public class GameEngine {
/**选中块的个数*/
private int selectTileNum = 0;
//第一个选择块的行号和列号
/**行号*/
private int firstRow;
/**列号*/
private int firstCol;
//第二个选择块的行号和列号
/**行号*/
private int secondRow;
/**列号*/
private int secondCol;
//当前选择框,默认在左上角
/**当前选择框的行号*/
private int cRow;
/**当前选择框的列号*/
private int cCol;
/**最大行数*/
private final int MAX_ROW = 10;
/**最大列数*/
private final int MAX_COL = 10;
/**地图数据,0 代表空,数据 1-10 分别代表十种不同的结构*/
private int[][] map = new int[MAX_ROW][MAX_COL];
/**随机数对象*/
private Random ran = new Random();
//地图区域左上角的坐标
private final int LEFTX = 20;
private final int LEFTY = 50;
/**每个单元格的宽度*/
private final int TILE_WIDTH = 20;
/**每个单元格的高度*/
private final int TILE_HEIGHT = 20;
/**连线类型*/
private int linkType;
/**无法连线*/
private final int NO_LINK = 0;
/**水平连线*/
private final int H_LINK = 1;
/**垂直联系*/
private final int V_LINK = 2;
/**一个拐点,先移动 x*/
private final int ONE_CORNER_FIRSTX = 3;
/**一个拐点,先移动 y*/
private final int ONE_CORNER_FIRSTY = 4;
/**两个拐点,待完善*/
private final int TWO_CORNER = 5;
/**
* 两次拐弯的行号和列号
* 数据格式为:
* 第一个拐点的行号,第一个拐点的列号,第二个拐点的行号,第二个拐点的列号
*/
int[] p = new int[4];
public GameEngine(){
//初始化地图数据
initMap();
}
/**
* 初始化地图数据
*/
private void initMap(){
for(int row = 0;row < map.length;row++){
for(int col = 0;col < map[row].length;col++){
map[row][col] = row + 1;
}
}
//循环打乱 10 次
int tempRow;
int tempCol;
int temp;
for(int i = 0;i < 10;i++){
for(int row = 0;row < map.length;row++){
for(int col = 0;col < map[row].length;col++){
//随机行号
tempRow = Math.abs(ran.nextInt() % 10);
剩余15页未读,继续阅读
资源评论
- b11503528072013-07-02很好,很不错
python666
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Python实现的自动化办公项目.zip
- 基于python实现的基于PyQt5和爬虫的小说阅读系统.zip
- 机械设计整经机上纱自动化sw20非常好的设计图纸100%好用.zip
- Screenshot_20240427_031602.jpg
- 网页PDF_2024年04月26日 23-46-14_QQ浏览器网页保存_QQ浏览器转格式(6).docx
- 直接插入排序,冒泡排序,直接选择排序.zip
- 在排序2的基础上,再次对快排进行优化,其次增加快排非递归,归并排序,归并排序非递归版.zip
- 实现了7种排序算法.三种复杂度排序.三种nlogn复杂度排序(堆排序,归并排序,快速排序)一种线性复杂度的排序.zip
- 冒泡排序 直接选择排序 直接插入排序 随机快速排序 归并排序 堆排序.zip
- 课设-内部排序算法比较 包括冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、归并排序和堆排序.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功