手机游戏中记分系统的原理和实现

简介:


记分系统的功能指定在ScoreScreen类内。采用的是手机专用的一种简化的数据库RMSMIDP规范要求运行平台提供某种稳固的存储手段(通过非挥发性的存储器,即掉电后存储的信息不会丢失的存储器)。RMS(记录管理系统)管理记录库,记录库即为二进制平面文件(flat file,由不包括重复组的一组同类型记录构成的文件)。记录库中的每一段数据都涉及到某一个记录,它还拥有一个由数字组成的记录ID号,ID在整个记录库中是互不重复的。每一个记录库的名字在创建它的MIDlet组件中也是互不相同的,MIDlet只可以访问它自己或同一组件中其它MIDlet所创建的记录库。当从设备(device)中删除MIDlet组件时,所有与MIDlet组件相关的记录库也全部被删除。javax.microedition.rms软件包中包含了RecordStore类,RecordStore类提供了访问记录库中的数据的初步方法。该软件包还包含了对记录库中的记录进行排序、搜索的其它类。

J2ME 中的基本存储概念是记录存储。记录存储是一个由记录组成的简单的数据库。一条记录是一条单独的数据,它有一个相关的唯一的数字标识符。也可以把数据记录看做是一张包括两列数据的简单的表格。
 

1.RecordStore类的运行

 
RecordStore 类的运行过程中,可以用静态RecordStore.openRecordStore方法打开一个已有的记录库,这会为这个指定名字的记录库返回一个RecordStore实例。如果指定的记录库的名字不存在,该方法也可以创建一个以改名字命名的新的记录库。使用getRecord方法就可以通过记录ID来得到ID对应的记录。还可以用addRecordsetRecord方法分别实现添加记录和更新记录的功能。当完成了对记录库的操作,可以用closeRecordStore来关闭这个记录库。
使用RecordStore类的过程通常包括以下几个步骤:
⒈打开/创建一个记录存储;
⒉从记录存储读出数据或向记录存储写入数据;
⒊关闭记录存储。
RecordStore 类中的一些用来和记录交互的重要方法有
·openRecordStore()——打开一个记录存储,以便读出或导入;
·getNumRecord()——获得记录存储中记录的数目;
·getRecordSize()——获得一个特定的单独记录的数据大小;
·getRecord()——从一个特定的单独记录中获得数据;
·addRecord()——向一个记录存储添加一条记录的数据;
·deleteRecord()——删除特定的单独记录;
·deleteRecord()——删除整个记录存储;
·closeRecordStore——关闭一个记录存储。
可以看出,这些方法提供了一种执行最常用的记录管理任务的方法。RecordStore类中肯定还有更多的方法可以使用,但是这些方法对于手机游戏最高得分列表的持久性存储已经足够了。

 

2.关于记录ID

 
Sun公司的标准实现(Sun’s reference implementation)中,给定记录的ID号与它的插入次序是相同的。记录库中第一个插入的记录以1为它的ID号,第二个插入的记录以2ID号,以此类推。尽管这听起来似乎很方便,但是实际上并不总是如此。MIDP规范只要求每个记录都有一个ID——ID号是如何创建的问题则留给平台的实现者。RecordStore类的绝大多数方法都可以抛出一个或者多个RecordStoreException类型的异常。异常的子类和它们对应的意义如下所示:
  1. InvalidRecordIDException异常,当某个被调用的方法涉及一个不存在的记录ID号(当读或者更新某个记录时)或者记录ID号无效(当添加记录时)时,就会抛出InvalidRecordIDException异常。
  2. RecordStoreFullException异常,当RMS(记录管理系统)的存储器满时,就会抛出该异常。例如,用OpenRecordStore来打开一个指定名字的记录库时,即使没有更新记录库,它也有可能抛出RecordStoreFullException异常。
  3. RecordStoreNotFoundException异常,当某个被调用的方法涉及到一个不存在的的记录库时,就会抛出该异常。如果指定名字的记录库不存在,OpenRecordStore也可以创建拥有该名字的记录库。该异常也可能从一个奇怪的地方抛出:CloseRecordStore方法。
  4. RecordStoreNotOpenException异常,如果你试图访问一个尚未被打开的记录库(用OpenRecordStore方法打开记录库)时,就会抛出该异常。
 
最后,由于被处理的对象是二进制数据,记录库访问方法(getRecordaddRecordsetRecord)均把记录数据做为字节数组处理。



     本文转自 gaochaojs 51CTO博客,原文链接:http://blog.51cto.com/jncumter/199938,如需转载请自行联系原作者


相关文章
|
8月前
|
JavaScript Java 测试技术
Java项目基于ssm+vue.js的网上手机销售系统附带文章和源代码设计说明文档ppt
Java项目基于ssm+vue.js的网上手机销售系统附带文章和源代码设计说明文档ppt
78 0
|
4月前
|
移动开发 Android开发 数据安全/隐私保护
移动应用与系统的技术演进:从开发到操作系统的全景解析随着智能手机和平板电脑的普及,移动应用(App)已成为人们日常生活中不可或缺的一部分。无论是社交、娱乐、购物还是办公,移动应用都扮演着重要的角色。而支撑这些应用运行的,正是功能强大且复杂的移动操作系统。本文将深入探讨移动应用的开发过程及其背后的操作系统机制,揭示这一领域的技术演进。
本文旨在提供关于移动应用与系统技术的全面概述,涵盖移动应用的开发生命周期、主要移动操作系统的特点以及它们之间的竞争关系。我们将探讨如何高效地开发移动应用,并分析iOS和Android两大主流操作系统的技术优势与局限。同时,本文还将讨论跨平台解决方案的兴起及其对移动开发领域的影响。通过这篇技术性文章,读者将获得对移动应用开发及操作系统深层理解的钥匙。
110 12
|
5月前
|
存储 NoSQL Java
使用redis进行手机验证码的验证、每天只能发送三次验证码 (redis安装在虚拟机linux系统中)
该博客文章展示了如何在Linux虚拟机上使用Redis和Jedis客户端实现手机验证码的验证功能,包括验证码的生成、存储、验证以及限制每天发送次数的逻辑,并提供了测试结果截图。
使用redis进行手机验证码的验证、每天只能发送三次验证码 (redis安装在虚拟机linux系统中)
|
5月前
|
存储 数据可视化 C语言
【C语言】C语言 手机通讯录系统的设计 (源码+数据+论文)【独一无二】
【C语言】C语言 手机通讯录系统的设计 (源码+数据+论文)【独一无二】
|
7月前
|
PHP
驾校在线考试系统源码 手机+PC+平板自适应
Thinkphp在线考题源码 驾校在线考试系统 手机+PC+平板 自适应,机动车驾驶培训学校驾校类网站源码带手机端 运行环境:php+mysql
190 11
驾校在线考试系统源码 手机+PC+平板自适应
|
7月前
|
数据安全/隐私保护 SEO
蚂蚁分类信息系统二开仿么么街货源客模板微商货源网源码(带手机版)
网站采用蚂蚁分类信息系统二次开发,模板仿么么街货源客模板,微商货源网定制版。 模板设计风格简洁,分类信息采用列表形式发布,这种设计方式非常符合度娘 SEO 规则。收录效果是杠杠的。 这个网站风格目前是用来做货源推广使用的,但不仅限于货源网站。后台无加密,分类目录随意修改。 无论你是想做地方分类信息,二手市场,或者垂直行业信息分类平台都是不错的选择。
51 2
蚂蚁分类信息系统二开仿么么街货源客模板微商货源网源码(带手机版)
|
6月前
|
关系型数据库 MySQL 测试技术
基于SpringBoot+Vue华强北商城二手手机管理系统(源码+部署说明+演示视频+源码介绍+lw)(4)
基于SpringBoot+Vue华强北商城二手手机管理系统(源码+部署说明+演示视频+源码介绍+lw)
62 2
|
6月前
|
数据库
基于SpringBoot+Vue华强北商城二手手机管理系统(源码+部署说明+演示视频+源码介绍+lw)(3)
基于SpringBoot+Vue华强北商城二手手机管理系统(源码+部署说明+演示视频+源码介绍+lw)
82 2
|
6月前
|
存储 安全 Java
基于SpringBoot+Vue华强北商城二手手机管理系统(源码+部署说明+演示视频+源码介绍+lw)(2)
基于SpringBoot+Vue华强北商城二手手机管理系统(源码+部署说明+演示视频+源码介绍+lw)
103 1
|
6月前
|
JavaScript Java 关系型数据库
基于SpringBoot+Vue华强北商城二手手机管理系统(源码+部署说明+演示视频+源码介绍+lw)(1)
基于SpringBoot+Vue华强北商城二手手机管理系统(源码+部署说明+演示视频+源码介绍+lw)
110 1

热门文章

最新文章