Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
J2me开发心得-数组的使用

作者:未知 来源:月光软件站 加入时间:2005-6-5 月光软件站

        在游戏逻辑类里有几十行的变量定义也不足为奇。特别对于j2me来说更是如此,为了节省内存空间很多人舍弃了面向对象的特性把代码挤在一块。通常的情况是自已被自已的代码给淹死了!!所以在做结构设计时我很注重这一点,总是试图让代码节省一点扩展性多一点。这件事并不算很难只要认真去推敲总可以发现一些可以优化的东西,变量就是一例。
大多数人更习惯于一个属性一个变量,举个例子假设要表示一个人物的属性你可能会这么做:
     int  生命;
     int  魔法;
     int  金钱;
     int 攻击力;
     int 防御力;
     int  人物所在的x轴;
     int 人物所在的y轴
     int 人物所在的行
     int 人物所在的列
     int 人物当前的动作
     int 人物当前行走的方向
     …..
这只是一部份,相信要为这么多的变量命名是一件困难的事,特别是英文不好的同志。大家现在可能已经看出来了使用数组是最好的办法。至少有两个好处 1 所有的变量定义变成一行   int  fairy[] ,变量被收拾得干净净甚至有点对象的味道,当要写该人物相关的代码时你会不假思索地打出 fair[]  。  2  具有扩展性 。这是容易让人忽视的一点,当该人物有新的属性时你可以用  fair[x+1]  的格子来表示它一点也不受影响,当然前提是数据类型必须一致。

数组应用典型的一例是表示地图。假设我们要做一张rpg的地图大多数人的第一反应就是用二维数组表示map[行][列]   看起来似乎合情合理,但是问题来了可能我想让地图上的某些东西动起来。 这就必须加上几个变量 1 当前显示的图片,2 剩余多久切换图片。 这只是最普通的情况,可遇到的问题还更多。我们不可能给每个会动的地方都定义变量,那样太得不偿失了,为此三维数组出现了现在把地图的表示如下
      int map[行][列][属性] ;
      map [][][0]  表示图片类别
      map [][][1]  表示图片当前播放到第几张
      map [][][2]  还剩多久切换图片
      map [][][3]  该位置是否可以行走
      map [][][4]  是否触发对话 0 表示否 其余表示对话的id
      …..
我们优雅地把地图相关的东西都很好地表示在一个数组里,想像一下如果不使用三维数组将会是什么样的状况。




相关文章

相关软件