资讯   |   开发   |   选机中心   |   产品大全 | IBM | 惠普 | 联想 | 戴尔 | 苹果 | 神舟
更多: | 华硕 | 明基 | 方正 | 紫光 | TCL | 夏新 | 联宝 | 宏碁 | 七喜 | 长城 | 清华同方 | 海尔 | 三星 | 东芝 | 索尼 | 富士通 | LG | 技术 | ddnoon
当前位置:笔记本 > 编程开发 >
Advertisement
文章正文

J2ME-MIDP1.0游戏完整实现-双人扫雷1.0(一) _编程

类型:转载   责任编辑:asp.net   日期:2007/05/23


热门软件下载:


   
  • java实现的18位身份证格式验证算法  
  • 在JBoss中配置多个数据库和数据源  
  • JSF - Request Processing Lifecycle  
  • 像工匠一样进行重构--《Refactoring WorkBook》  
  • 将Java应用程序本地编译为EXE的几种方法  
  • 一个简单的JAVA XML解析器  
  • Hibernate入门 - 包作用详解  
  • RMI、CORBA、IIOP简单实例--1. RMI  
  • 使用 Configuration  
  • Staff Info小系统开发总结  
  • 页面导航:

    正文内容:

    作者:yinowl
    2005年2月

    前言
    我的上一篇也是第一篇文章《j2me-midp1.0小游戏入门-五子棋》贴出以后,有好多的朋友发邮件、加qq、加msn和我聊有关j2me的内容,我很开心也很感慨,开心并不是因为自己文章写得如何如何而有很多人联系我,而是有这么多的朋友在学j2me,我原来以为现在已经没有人再会联系文章的作者,看来我错了;感慨是因为,我知道我的第一篇文章其实很差的,从大家的反应,我能感觉出网上的原创资料的缺乏,官方或者书籍虽然权威且,但总感觉学的时候和实际的情况有点距离,我在看这些资料的时候,也经常会想,实际游戏开发公司里为怎么处理、会怎么写这个代码、程序的结构流程会怎么样等等。原创文章的最大有点就是它包含了作者的经验,实际开发中的经验。介于大家对我的支持并且网上原创文章有限,我非常乐意继续写一些自己的经验和技术,充实我们的中文资源。所以我接着写了这篇文档,文档内容即程序的开发过程都是真实的,不是为写文章而写文章,完全是近一段时间里先完成的程序,现在再把它写成教学文章。愿大家学j顺利,多多交流(msn:yinowl@163.com qq:47599318 e-mail:yinowl@163.com)

    注意
    平台:这个游戏我是在 nokia 的平台上设计的,也就是说使用了 fullcanvas 类以及针对nokia-60系列(7650)的屏幕设计的,稍作修改就能运行在其他型号的手机上(我已经制作了 siemens-c65nokia-7210 ,以及所有支持标准midp1.0/2.0、屏幕128 x 128的手机的几个移植版本,有需要可以和我联系)
    代码:同我的前一篇文章《j2me-midp1.0小游戏入门-五子棋》一样,代码列出解释的形式仿照《j2me game programming》一书,按照程序功能思路给出相关代码,一个文件的代****根据功能在不同的小节给出,文章结束了,代码也就完整了。这不同于通常书中的代码以文件为单位一次全部给出,我认为这样更有助于让大家了解一个程序从设计到最后完成的思路。

    游戏介绍
    扫雷这个游戏大家一定再熟悉不过了,但这个双人扫雷游戏的扫雷新玩法大家可能就没见过了,其实这就是msn软件中的一个网络联机小游戏,大家每天在使用msn,但都很少注意或玩msn中的游戏吧,可以说我就是把msn上的联机双人扫雷移植到的手机上,一模一样。如果你现在不方便上网或者没有人和你联机看一下这个游戏的界面和玩法,没关系,我现在就来介绍一下,游戏区(雷区)中一共有 16 x 16 共256个格子,其中有52颗雷,操作除了上下左右键(当然电脑上是用鼠标点的)只需要一个挖雷键,你要做的是挖出雷,而不是用另一个键去标示雷。两个玩家,一方开始挖雷,如果挖到(点到)雷,则加一分,没挖到,就和经典的扫雷一样,显示这个位置周围一圈有几个雷,如果一个雷都没有,和经典的扫雷一样,会把和这一格相连的所有周围没有雷的格子和再外面一圈格子打开,然后另一位玩家挖雷,谁先挖到半数以上(大于26颗)的雷谁就获胜,其实很简单吧,游戏的界面如下:

       

       

    游戏逻辑设计
    数据结构:这个游戏属于二维棋类游戏,所以我们自然而然想到设计一个 bomb 类表示每一颗雷位,用一个bomb类型的二维数组表示整个雷区的所有雷位,每一个雷位(即每一个bomb实例)包含一个表示该雷位是否是雷的boolean类型的变量,一个表示该雷位是否已被挖的boolean类型的变量,一个表示是否是被玩家一挖的boolean类型的变量(否表示是被玩家二挖),一个表示该雷位周围八个雷位共有几颗雷的int类型变量。这样整个雷区的状态就完全被描述出来了,然后就根据这个二维表来绘制游戏界面
    游戏流程:整个游戏只使用唯一一个 fullcanvas 类,用唯一一个表示状态的变量来控制整个游戏的状态,整个游戏也只使用本身的唯一线程
    玩家切换:用一个boolean类型的变量来表示当前执行的玩家,用游戏的外框颜色及右下角的旗子颜色来表示出来

    接下来就开始详细介绍并列出游戏程序的各部分代码,文章的结束,整个游戏也就完成了

    应用程序类:miningmidlet.java
    首先就是一个midlet类。 miningmidlet 类继承自midlet类,用于连接设备的应用程序管理器(application manager),通过方法startapp,pauseapp,destroyapp来通知游戏的开始,暂停和销毁结束。源代码如下:

    package com.imy.yinowl.miningscroll;import javax.microedition.lcdui.display; import javax.microedition.midlet.midlet;public class miningmidlet extends midlet { miningcanvas miningcanvas;  //定义游戏界面的fullcanvas类miningcanvas的对象miningcanvas public miningmidlet() {  display=display.getdisplay(this);  miningcanvas=new miningcanvas(this);  //生成miningcanvas类的对象miningcanvas  } protected void startapp(){  miningmidlet.display.setcurrent(miningcanvas);  //在屏幕上绘出游戏见面miningcanvas  } protected void pauseapp(){  } protected void destroyapp(boolean arg0){  notifydestroyed();  }}

     

     
    热门推荐笔记本: IBM笔记本
    相关文章:
    webmaster:popbb@126.com   最佳浏览:1024X768 MSIE
    ©2007 popbb.net All Rights Reserved