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
…..
我们优雅地把地图相关的东西都很好地表示在一个数组里,想像一下如果不使用三维数组将会是什么样的状况。
8 个解决方案
#1
Up,呵呵
#2
好久没见的好文
关注
强烈关注
关注
强烈关注
#3
好是好,不过要尽量处理”幻数“,不然程序里面容易到处是fair[0]或fair[1]等,以后改程序时会很痛苦。
#4
呵呵没有绝对的好 幻数 确实是一个问题,这只有看你怎么去平衡这些了
#5
为移植得人也着想下吧.
#6
有利则有弊,关键是看你怎么取舍了
#7
楼主这样的写法不客气的讲只能适合小打小闹的游戏,根本不能用于大型游戏上,j2me开发是有运行速度、内存使用和jar包大小的各种苛刻的限制。你这样做确实简单了不少,但是内存的浪费是显而易见的,并且数组的访问速度要大大慢于单个变量的访问,更不用说是多维数组了。
#8
回复 yuzheng1981
首先j2me就目前来说并不适合作大型游戏所以偶的意思就是写小游戏,请别误会
至于浪费内存我计算过了一个地图只占几k 而拿7210标准来说游戏可用内存有170k 左右
合理安排的话还是不会超的
您提到的速度问题个人认为你应该多看一点汇编的资料,代码编译完成后是不存在数组的都变成了地址
普通变量和数组都一样,所以速度之说小弟不同意
首先j2me就目前来说并不适合作大型游戏所以偶的意思就是写小游戏,请别误会
至于浪费内存我计算过了一个地图只占几k 而拿7210标准来说游戏可用内存有170k 左右
合理安排的话还是不会超的
您提到的速度问题个人认为你应该多看一点汇编的资料,代码编译完成后是不存在数组的都变成了地址
普通变量和数组都一样,所以速度之说小弟不同意
#1
Up,呵呵
#2
好久没见的好文
关注
强烈关注
关注
强烈关注
#3
好是好,不过要尽量处理”幻数“,不然程序里面容易到处是fair[0]或fair[1]等,以后改程序时会很痛苦。
#4
呵呵没有绝对的好 幻数 确实是一个问题,这只有看你怎么去平衡这些了
#5
为移植得人也着想下吧.
#6
有利则有弊,关键是看你怎么取舍了
#7
楼主这样的写法不客气的讲只能适合小打小闹的游戏,根本不能用于大型游戏上,j2me开发是有运行速度、内存使用和jar包大小的各种苛刻的限制。你这样做确实简单了不少,但是内存的浪费是显而易见的,并且数组的访问速度要大大慢于单个变量的访问,更不用说是多维数组了。
#8
回复 yuzheng1981
首先j2me就目前来说并不适合作大型游戏所以偶的意思就是写小游戏,请别误会
至于浪费内存我计算过了一个地图只占几k 而拿7210标准来说游戏可用内存有170k 左右
合理安排的话还是不会超的
您提到的速度问题个人认为你应该多看一点汇编的资料,代码编译完成后是不存在数组的都变成了地址
普通变量和数组都一样,所以速度之说小弟不同意
首先j2me就目前来说并不适合作大型游戏所以偶的意思就是写小游戏,请别误会
至于浪费内存我计算过了一个地图只占几k 而拿7210标准来说游戏可用内存有170k 左右
合理安排的话还是不会超的
您提到的速度问题个人认为你应该多看一点汇编的资料,代码编译完成后是不存在数组的都变成了地址
普通变量和数组都一样,所以速度之说小弟不同意