• rxw27588
    了解作者
  • Java
    开发工具
  • 104KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 1340
    下载次数
  • 2009-02-13 03:27
    上传日期
用J2ME写的一种五子连线的手机游戏。ColorLinez是一款由玩家通过功能键移动各色小球,把五个及五个以上相同颜色小球移成一横排、一竖列,小球从而消失的游戏,玩家每移动一个小球,就会随机新出现三个随机颜色的小球,小球消失的数量作为玩家得到的分数!
ColorLinez.rar
  • res
  • m_help.png
    5.2KB
  • 00.png
    3KB
  • 04.png
    3KB
  • gameover.png
    2.8KB
  • _desktop.ini
    9B
  • m_highscores.png
    6.2KB
  • 01.png
    3KB
  • option.png
    2.5KB
  • logo1.png
    23.6KB
  • m_options.png
    5.2KB
  • 02.png
    3KB
  • 06.png
    3KB
  • logo2.png
    9.2KB
  • m_about.png
    4.9KB
  • m_quit.png
    5.1KB
  • 03.png
    3KB
  • 05.png
    3KB
  • m_newgame.png
    6.4KB
  • src
  • game
  • LinezCanvas.java
    20.1KB
  • ColorLinezMIDlet.java
    1.1KB
  • _desktop.ini
    9B
  • LogoCanvas.java
    1.8KB
  • HelpCanvas.java
    1.2KB
  • HighScoreRecordStore.java
    4.6KB
  • MainMenuCanvas.java
    2.4KB
  • OptionCanvas.java
    1.8KB
  • AboutCanvas.java
    1.2KB
  • HighScoreCanvas.java
    1.5KB
  • _desktop.ini
    9B
  • www.pudn.com.txt
    218B
内容介绍
package game; import java.util.*; import javax.microedition.lcdui.*; import javax.microedition.media.Manager; public class LinezCanvas extends Canvas { //Display对象 Display display; //屏幕的宽度与高度 private int scrWidth = 0; private int scrHeight = 0; //声明次画面 private Graphics offG = null; private Image image = null; private int grid[][] = new int[9][9]; private int position[][] = new int[81][2]; //格子与顶部、左端的距离 private int spaceTop = 0; private int spaceLeft = 0; //格子的宽度与高度 private int gridWidth = 0; private int gridHeight = 0; //格子的x、y坐标 private int gridX = 0; private int gridY = 0; //已经选择标记 private boolean clickFlag = false; //选择框初始位置 private int initRow = 4; private int initCol = 4; //球被选择的位置 private int choseRow = 0; private int choseCol = 0; //声明图片对象 private Image img[] = new Image[3+(ColorLinezMIDlet.gameGrade-1)*2]; //声明随机数对象 private Random random = null; //球的下标 private int chSphere = 0; //球的颜色数 private int colorTotal = 0; //消失球数 private int delNum = 5; //球的总数 private int sphereTotal = 0; //新球位置 private int newPos = 0; //存储球位置一维下标 private int posRow = 0; //游戏状态 0代表进行中 1游戏暂停 2游戏结束 private int gameFlag = 0; //分数 private int score = 0; //时间分钟数 private int minute = 0; //秒数 private int second = 0; //定时器 private Timer timer = null; //球消失时闪烁的次数 private int disCount = 0; //球是否正在消失 private boolean deleting = false; //球色相同所在的行数 private int rows[] = new int[6]; //球色相同所在的列数 private int cols[] = new int[6]; //球色相同所在的行数 private int same[] = new int[6]; //球消失的方向 private int delDir[] = { 0, 1, 2, 2, 3, 3 }; private boolean isUper[] = new boolean[6]; //出现球的球数 private int count = 0; private int total = 0; //暂停选项索引 private int pauseIndex = 0; //暂停图片 private Image pauseImage = null; //游戏结束选项索引 private int overIndex = 0; //游戏结束图片 private Image overImage = null; /** * 构造方法 * */ public LinezCanvas(Display display) { //获得Display对象 this.display = display; //设屏全屏 this.setFullScreenMode(true); //得到屏幕的宽度与高度 scrWidth = this.getWidth(); scrHeight = this.getHeight(); //计算格子的宽度与高度 gridWidth = ( scrWidth - 6 ) / grid[0].length; gridHeight = gridWidth; //设置格子与顶部、左端的距离 spaceTop = (scrHeight - gridHeight*9)/2 + 6; spaceLeft = (scrWidth - gridWidth*9)/2; //获得次画笔对象 image = Image.createImage(scrWidth, scrHeight); offG = image.getGraphics(); //创建Random对象 random = new Random(); //游戏初始化 gameInit(); //导入图片 for ( int i = 0; i < colorTotal; i++ ) { try { img[i] = Image.createImage("/res/0"+i+".png"); } catch(Exception e) {} } //创建Timer对象 timer = new Timer(); //启动时间线程 timer.scheduleAtFixedRate(new TimeTimerTask(),100,1000); } //游戏初始化 public void gameInit() { //游戏进行中 gameFlag = 0; //球的颜色数 colorTotal = 3+(ColorLinezMIDlet.gameGrade-1)*2; //球的总数 sphereTotal = 0; //选择框初始位置 initRow = 4; initCol = 4; //分数 score = 0; //时间分钟数 minute = 0; //秒数 second = 0; for ( int i = 0, m = 0; i < grid.length; i++ ) { for ( int j = 0; j < grid[i].length; j++, m++ ) { grid[i][j] = 0; //新出现球的位置 position[m][0] = i; position[m][1] = j; } } //游戏开始新出现5个小球 createSphere(5); } protected void paint(Graphics g) { //清屏 offG.setColor(0xFFFFFF); offG.fillRect(0, 0, scrWidth, scrHeight); offG.setColor(0x000000); //0代表游戏进行中 1游戏暂停 2游戏结束 switch ( gameFlag ) { case 0: drawGrid(offG); break; case 1: pauseGame(offG); break; case 2: gameOver(offG); break; } g.drawImage(image, 0, 0, Graphics.TOP | Graphics.LEFT); } /** * 启动线程 * */ public void start() { if ( timer == null ) { timer = new Timer(); timer.schedule(new TimeTimerTask(),100,1000); } } /** * 停止线程 * */ public void stop() { if(timer != null) { timer.cancel(); timer = null; } } /** * 退出游戏 * */ public void quitGame() { stop(); for ( int i = 0; i < colorTotal; i++ ) { img[i] = null; } if ( pauseImage != null ) { pauseImage = null; } if ( overImage != null ) { overImage = null; } } protected void hideNotify() { stop(); } protected void showNotify() { start(); } protected void keyPressed(int keyCode) { //球在消失中立即返回 if ( deleting ) { return; } //游戏进行中,进行上下左右移动选择 if ( gameFlag == 0 ) { int action = this.getGameAction(keyCode); switch (action) { case Canvas.UP: moveUp(); break; case Canvas.DOWN: moveDown(); break; case Canvas.LEFT: moveLeft(); break; case Canvas.RIGHT: moveRight(); break; case Canvas.FIRE: commitPosition(); break; default: if ( keyCode == -7 ) { gameFlag = 1; } break; } } //游戏暂停 else if ( gameFlag == 1 ) { switch ( keyCode ) { case -1: pauseIndex--; if ( pauseIndex < 0 ) { pauseIndex = 3; } break; case -2: pauseIndex++; if ( pauseIndex > 3 ) { pauseIndex = 0; } break; case -5: switch ( pauseIndex ) { case 0: gameFlag = 0; start(); break; case 1: gameInit(); start(); break; case 2: quitGame(); display.setCurrent(new MainMenuCanvas(display)); break; case 3: quitGame(); ColorLinezMIDlet.quitApp(); break; } } } //游戏结束 else if ( gameFlag == 2 ) { switch ( keyCode ) { case -1: overIndex--; if ( overIndex < 0 ) { overIndex = 2; } break; case -2: overIndex++; if ( overIndex > 2 ) { overIndex = 0; } break; case -5: switch ( overIndex ) {
评论
    相关推荐
    • j2me手机游戏开发
      帮你学会开发环境的搭建 基础入门 简单易懂
    • j2me手机游戏开发
      俄罗斯方块,一款非常经典的游戏,开发智力
    • j2me 手机游戏开发
      详细的J2ME源码!手机游戏开发源代码!
    • J2ME手机游戏
      using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication8 { class Program { static void Main(string[] args) { } } }
    • J2me 手机游戏例子
      希望对手机游戏开发爱好者有用。请善意实用,个别游戏与要用模拟器。一般S60即可。
    • j2me手机游戏开发
      手机已这人人必备的通讯设备,这本电子书祥细讲述了手机游戏的开发
    • J2ME手机游戏
      J2ME手机五子棋网络游戏
    • j2ME手机游戏开发
      啊啊啊啊 啊啊啊啊啊啊啊啊啊
    • J2ME手机游戏案例精编
      本书是一本介绍J2ME无线开发的实训...本书通过7个典型的例子,从不同的方面分别介绍了J2ME游戏开发的实用技术。通过实际代码的阅读和谈论,读者能够在提高编程技能的同时,培养游戏开发的素养。 *U7j \.Z+l3o#oT,]1U0
    • J2ME手机游戏开发详解
      J2ME手机游戏开发详解,很好的,下载下来看看吧。