网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.滚动区域的例子.
.RMI和CORBA的比较.
.一个让98%的Java程序员犯难的偏门.
.Eclipse入门之使用指南及开发Ecl.
.旋转你的3D世界.
.Java中的违例自变量.
.JAVA设计模式系列之Adapter(适配.
.为什么要使用JDO.
.灵活使用EJB的本地和远程接口(二).
.Java 动态代理实现AOP.
.用JBossEclipseIDE开发J2EE应用系.
.Canvas中使用Font.
.two tips about BlackBerry.
.Netbeans IDE常见问题集锦.
.Java Mustang 推动Web.
.技术前沿:网格帮助SOA扩大规模.
.Jive 源代码探索.
.Hibernate入门 - Transaction.
.基于服务器的Java安全产品.
.关于java vm的垃圾收集.

MIDP1.0小游戏入门-五子棋1.0

发表日期:2008-1-5


作者:yinowl
2005年1月

介绍
这是我学习j2me入门后的第一个作品,当然这也是一个极其简单的作品(没有电脑AI,只能是两个人对战),现在我把当时的设计思路写成这篇文档,希望对想入门j2me的朋友在j2me的流程,按键响应绘图等方面有所帮助,同时也希望大家指出错误和改进程序。

注重
代码列出解释的形式仿照《J2ME Game Programming》一书,按照程序功能思路给出相关代码,一个文件的代码会根据功能在不同的小节给出,文章结束了,代码也就完整了。这不同于通常书中的代码以文件为单位一次全部给出,我认为这样更有助于让大家了解一个程序从设计到最后完成的思路。

设计
数据结构:
由于五子棋是一个二维棋类游戏,所有首先想到的是定义一个Chesses类来表示棋子,Chesses有一个boolean型的变量isPlayer1来区分该棋子是哪玩家下的,然后用一个Chess类型的二维数组来包含棋盘上的所有棋子。考虑到移动设备的资源有限,尽可能减少系统资源占用,我考虑不在数组建立后直接生成数组的每一个对象,而是把每一个棋子对象(Chesses)放在游戏的进行中生成,也就是说在游戏进行时,玩家每下一步棋,在数组相应位置生成该棋子的对象,这样可以避免还没有下的棋子在一开始就占用了系统内存
流程:游戏按照棋子的二维数组进行绘制棋子,玩家下棋后,程序修改数组相应位置,设置isPlayer1值,然后重新绘制(repaint),就更新了棋盘界面。由于游戏的功能简单,也为了使游戏的操作尽可能的简便,我不在游戏进入时设计菜单,而是直接开始对战,在对战界面,设置了重新开始和退出的按钮。即运行即玩,一键开始,一键重来,一键退出。
玩家切换:棋类游戏有一个问题需要注重,就是提示当前由哪方下棋,为了节省界面空间,简化游戏界面,我在棋盘外围加了一个3个像素宽的框,框的颜色就是当前下棋方的颜色,如图:
MIDP1.0小游戏入门-五子棋1.0(图一)MIDP1.0小游戏入门-五子棋1.0(图二)

 

 

 

 

 

 

应用程序类:Gobang.Java
接下来就开始完成游戏中的每一个类,首先就是一个MIDlet类。Gobang类继续自MIDlet类,用于连接设备的应用程序治理器(Application Manager),通过方法startApp,pauseApp,destroyApp来通知游戏的开始,暂停和销毁结束。源代码如下:

package com.occo.j2me.game.gobang;
import javax.microedition.lcdui.Display;
import javax.microedition.midlet.MIDlet;
public class Gobang extends MIDlet {
    GobangCanvas gobang;//定义游戏界面的Canvas类GobangCanvas的对象gobang
    public Gobang() {
        super();
        gobang=new GobangCanvas(this);//生成GobangCanvas类的对象gobang
    }
    protected void startApp(){
        Display.getDisplay(this).setCurrent(gobang);
          //在屏幕上绘出游戏见面gobang
    }
    protected void pauseApp(){

上一篇:Eclipse快速上手指南(4) 人气:601
下一篇:Nokia UI学习范例FishTank研究 人气:616
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐