J2me开发心得-数组的使用

2016-02-19 15:10 1 1 收藏

图老师设计创意栏目是一个分享最好最实用的教程的社区,我们拥有最用心的各种教程,今天就给大家分享J2me开发心得-数组的使用的教程,热爱PS的朋友们快点看过来吧!

【 tulaoshi.com - 编程语言 】

  在游戏逻辑类里有几十行的变量定义也不足为奇。特别对于j2me来说更是如此,为了节省内存空间很多人舍弃了面向对象的特性把代码挤在一块。通常的情况是自已被自已的代码给淹死了!!所以在做结构设计时我很注重这一点,总是试图让代码节省一点扩展性多一点。这件事并不算很难只要认真去推敲总可以发现一些可以优化的东西,变量就是一例。大多数人更习惯于一个属性一个变量,举个例子假设要表示一个人物的属性你可能会这么做:

  int 生命;

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  int 魔法;

  int 金钱;

  int 攻击力;

  int 防御力;

  int 人物所在的x轴;

  int 人物所在的y轴

  int 人物所在的行

  int 人物所在的列

  int 人物当前的动作

  int 人物当前行走的方向

  ..

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  这只是一部份,相信要为这么多的变量命名是一件困难的事,特别是英文不好的同志。大家现在可能已经看出来了使用数组是最好的办法。至少有两个好处 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

  ..

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

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

来源:https://www.tulaoshi.com/n/20160219/1609048.html

延伸阅读
一、序言 昨天在网上闲逛,发现一篇讲解用delphi实现华容道游戏的文章,颇受启发.于是,产生了将华容道游戏移植到手机中去的冲动.现在手机游戏琳琅满目,不一而足,华容道的实现版本也很多.正巧不久前笔者对J2ME下了一番功夫,正想借这个机会小试牛刀。选用J2ME的原因还有一个就是目前Java开发大行其到,无线增殖业务迅猛发展,J2M...
本文向您介绍了如何在 Eclipse IDE 中使用 EclipseMe 插件开发 J2ME 应用程序。本文首先对 EclipseMe 插件及其安装配置步骤进行了简介,并通过一个简单例子介绍了如何构建一个基本的 J2ME 应用程序。 一、安装和配置准备 您需要安装 Eclipse 3.0M9、J2ME Wireless Toolkit 2.1和EclipseMe,Eclipse是IBM公司资助的开源 IDE 开发...
七、测试 作为一个真正的产品要经过单体测试、结合测试和系统测试。由于项目本身简单,而且大部分代码已经是相对成熟的,我们跳过单体测试;又由于笔者的实际环境所限,无法搞到Java手机,无法架设OTA服务器,因此我们也只能放弃系统测试。那么就让我们开始结合测试吧。测试之前要先出一个测试式样书,也就是测试的计划。我们将它简化一下,...
三、需求分析 这部分叫做需求分析,听起来挺吓人的,其实就是搞清楚我们要做什么,做成什么样,那些不做。下面我引领着大家共同来完成这一步骤。首先,我们要做一个华容道的游戏,华容道的故事这里不再赘述了,但其中的人物在这里限定一下,如上面Images类里的定义,我们这个版本只提供曹操(Caocao)、关羽(Guanyu)、张飞(Zhangfei)、...
六.编码 整个项目共有五个类,有四个类的代码前面已经介绍过了,而且是在其他项目中使用过的相对成熟的代码.现在只需全力去实现Displayable1类.Displayable1类的代码如下: package huarongroad; import javax.microedition.lcdui.*; public class Displayable1 extends Canvas implements CommandListener { private int[] loc = ...

经验教程

384

收藏

40
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部