J2me开发心得-数组的使用

soddabao 发表于 2006-04-20 15:30:28
作者:冷面阎罗     来源:未知
评论数:5 点击数:6,160     投票总得分:1 投票总人次:1
关键字:J2me

摘要:

在游戏逻辑类里有几十行的变量定义也不足为奇。特别对于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
…..

我们优雅地把地图相关的东西都很好地表示在一个数组里,想像一下如果不使用三维数组将会是什么样的状况。


本页页面地址:

投票评分(记入本贴作者的专家分)

     非常好 还行 一般 扔鸡蛋          投票总得分: / 投票总人次:

用户评论列表

#1 评论作者: keyknight23 发表时间: 2006-04-25 04:38 下午

这么搞就是C语言的做法,虽然没有研究过J2ME,但个人认为这种做法虽然节省了空间,却失掉了面向对象的灵活性

#2 评论作者: keyknight23 发表时间: 2006-04-25 04:39 下午

这么搞就是C语言的做法,虽然没有研究过J2ME,但个人认为这种做法虽然节省了空间,却失掉了面向对象的灵活性

#3 评论作者: keyknight23 发表时间: 2006-04-25 04:44 下午

晕倒……firefox里面看不到评论,连发四版……

#4 评论作者: 1111 发表时间: 2008-10-16 10:02 上午

最新入党申请书下载站:入党申请书,入党申请书下载,入党申请书范文,徐州网站建设,徐州网站建设除湿机


发表我的评论 (评论可增加个人积分...)

用户*: E-mail:
评论内容*:

支持BBCode
算术题*: + =