在游戏逻辑类里有几十行的变量定义也不足为奇。特别对于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
  …..
  我们优雅地把地图相关的东西都很好地表示在一个数组里,想像一下如果不使用三维数组将会是什么样的状况。

J2ME开发心得-数组的使用相关推荐

  1. MetroMusic音乐播放器开发心得

    MetroMusic音乐播放器开发心得 在这个假期,我独立开发了自己的音乐播放器MetroMusic,之所以叫做MetroMusic,是因为这个播放器的界面采用目前最为流行的win8Metro风格.这 ...

  2. 使用NetBeans进行J2ME开发(五):揭开游戏开发的神秘面纱

    游戏开发,好大的一个命题哦.无论是游戏的剧情设计,还是游戏的美工制作,那都不是一两下子能够完成的事,而编程,只是其中的一小部分.但是,就算是这一小部分,我也不可能把它掌握得很透彻.这篇随笔,大部分都是 ...

  3. 个人的web开发心得(SQL)----非常适合入门新手,都是常识

    1. WEB程序,绝对不要使用static 静态的变量,除非你知道他的作用. 声明为static, 所有用户同时使用这个变量.所有的类实例都公用这个变量. 2. 连接表, 保留左边的表a 所有记录  ...

  4. 数据库期末项目开发心得(持续更新中)

    数据库期末项目开发心得 文章目录 数据库期末项目开发心得 1.架构的实践案例 **(1)[(23条消息) Vue + Spring Boot 项目实战(一):项目简介_Evan 的博客-CSDN博客_ ...

  5. Q版格斗游戏《口袋战士NOVA》开发心得[原创]

    酝酿了一下,决定写一篇<口袋战士NOVA>的开发心得,其实是把我所遇到和解决的问题做个整理,也希望对大家以后开发游戏有帮助. <口袋战士NOVA>一共开发了10个月时间.由于是 ...

  6. [转]Q版格斗游戏《口袋战士NOVA》开发心得[原创]

    [转]Q版格斗游戏<口袋战士NOVA>开发心得[原创] 2010年12月01日 http://www.flashcat.com.cn/blog/read.php?49 酝酿了一下,决定写一 ...

  7. 软件开发心得点滴记录

    软件开发心得点滴记录 一见 创建日期:2013/6/27 1. 前言 自从2002年大学毕业后一直沉浸于软件开发之路,平时喜欢思考和归纳,时常会产生一点心得和想法,回想起来是一笔宝贵的财富,只可惜陆陆 ...

  8. 一个菜鸟程序员的游戏开发心得

    对于一个只在大学期间学习了JavaScript,实习期间学习了点HTML.CSS的菜鸟,做游戏对我而言是一件想都不敢想的事情,后有幸被公司安排参与一款HTML5游戏的开发,才使我真正第一次与游戏来了次 ...

  9. UI组件库从1到N开发心得-组件篇

    正文 距离第一篇UI组件库文章发布已经过去3个月了,在此期间利用零零散散的时间持续更新owl-ui组件库,目前owl-ui移动端组件库已经更新3大类(基础.表单.弹出层)9种组件(Button.Tab ...

最新文章

  1. html自动刷新倒计时,基于JavaScript实现自动更新倒计时效果
  2. serial driver 1
  3. Java中的策略设计模式
  4. 嵌入式GUI FTK支持输入法
  5. C# 属性、索引器(二)
  6. ******:突破空格的限制
  7. php中超过int真么办,PHP int 超大溢出整数的 加减运算函数,如果有更好的方法欢迎探讨...
  8. Python制作含微软雅黑字体的图片报错,中文字体报错可用类似方式处理
  9. ADS仿真设计AB类射频功率放大器
  10. Google发布了Google Sketchup,完全免费
  11. python批量打印word文件
  12. git push出现的问题与ssh相关
  13. 阿里code代码提交git命令总结
  14. JavaScript 根据身份证号获取年龄
  15. 右键新建文本文档不见了
  16. C语言指针的入门pointer
  17. AWB(Auto White Banlance)——自动白平衡
  18. 【Codeforces613D】Kingdom and its Cities【虚树】【Tree DP】倍增lca
  19. wblinv matlab,求助,matlab如何根据已知分布求分位点
  20. 论文格式设置-页面设置、页眉页脚、自动生成目录等

热门文章

  1. 【剑指offer】不使用新变量,交换两个变量的值,C++实现
  2. 设计模式-行为-Iterator(迭代器)模式
  3. 命名式ACL配置实例
  4. python 自动克隆gitlab web前端
  5. legend3---laravel验证码使用
  6. TypeScript基础学习 —— 基础类型
  7. TCP和UDP和IP和HTTP和socket
  8. [转]Docker基础-使用Dockerfile创建镜像
  9. Struts2框架学习Action命名空间创建方式
  10. TCP,IP,HTTP,SOCKET区别和联系