计算机游戏程序设计实验,计算机游戏程序设计实验指导书(6,7)-河北工业大学2015.doc...

计算机游戏程序设计

实验指导书

河北工业大学

计算机科学与软件学院

PAGE \* MERGEFORMAT 13

实验6 持久化数据和应用程序

一、实验目的与要求

1. 熟悉并掌握数据的存储方法,包括轻量级数据存储和文件存储。

2. 熟悉并掌握应用程序类的相关方法。

3. 熟悉并掌握鼠标拖动模型的实现。

二、实验原理及知识点

喜欢玩游戏的朋友应该很清楚,很多游戏中都会出现与“存储进度”、“读取进度”相关的菜单项,玩家一般将其称为游戏存档功能。他们用于保存玩家的游戏数据,并且还可以通过读取之前的游戏进度继续游戏,这就牵扯到数据存储。一般情况下,系统只存储一些轻量级的数据,比如字符型、整型、浮点型数据等。这是因为数据类型越简单,存储与读取就越迅速。此外,所有数据的存储都是通过流的形式来完成的,系统使用流将数据写入文件或从文件读取至程序。

1 PlayerPrefs类

Unity提供了一个用于本地持久化保存与读取数据的类——PlayerPrefs。它的工作原理是以键值对的形式将数据保存在文件中,这就好比给需要保存的每一个数据赋予名称,在将其成功存入本地存档以后,程序就可以根据这个名称取出上次保存的数据。

1.1 保存与读取数据

PlayerPrefs类可保存与读取3种基本的数据类型,它们是浮点型、整型和字符串型,涉及的方法如下。

□SetFloat( ): 保存浮点类型。

□SetInt( ): 保存整型。

□SetString( ): 保存字符串型。

□GetFloat( ): 获取浮点类型。

□GetInt( ): 获取整型。

□GetString( ): 获取字符串型。

这些函数的用法基本相同,使用Set进行保护,使用Get进行读取。下面列举一个存储与读取整型数据的例子。

//保存整型

PlayerPrefs.SetInt("Teat", 100);

//读取数据

int i = PlayerPrefs.GetInt("Test", 888);

保存数据时,需要调用对应的Set方法,该方法的第一个参数表示存储数据的名称,第二个参数表示具体存储的数值:读取数据时,需要调用对应的Get方法,其返回值就是读取后的数值,该方法的第一个参数表示读取数据的名称,第二个参数表示读取数据的默认值,即如果通过数据名称没有找到对应的值,那么就直接返回数据的默认值。

1.2 删除数据

此外,PlayerPrefs类还提供了两种删除数据的方法:第一种为删除某一项数据,第二种为删除所有数据。为了安全起见,删除前还需判断系统中是否存有该数据。删除数据的方法如下。

□DeleteAll ( ) :将所有键对应的值数据统统删除。

□DeleteKey ( ) : 删除某一项数据,其参数为所删除数据的名称。

□HasKey ( ) : 判断是否存有这项数据,其参数为判断的数据名称。

2 自定义文件

如果需要在程序中处理大量的数据,使用PlayerPrefs类就不太适合了,因为PlayerPrefs是轻量级的存储。在存储电子小说这类文字资源非常海量的数据时,可以先将文字数据保存在本地文件中,再通过流去读取本地的资源数据,然后将其显示在屏幕中。此外,使用流还可以在程序中动态地创建本地文本文件,也可以将字符串信息动态地写入本地文本文件。

2.1 文件的创建与写入

文件的创建与写入都需要使用流来操作。要创建与写入文件,首先需要3组相关信息:创建文件的路径、名称以及写入文件的内容。

创建本地文件时,需要使用FileInfo类,在构造方法中写入文件的保存路径。通过对FileInfo的对象使用CreateText ( ) 方法,可在本地创建一个文本文件,使用AppendText ( )方法可代开以创建的文本文件,最后调用WriteLine ( ) 方法可将字符串写入刚刚创建的文本文件中。

2.2 文件的读取

文件的读取和写入一样,需要使用流来处理。文本文件中的数据是逐行存储的,因此可以使用流将文本内容逐行读出。

读取文件时,首先需要获取文件流,然后以循环的方式通过sr.ReadLine ( ) 方法将文本文件中的内容全部按行读取出来,读取完毕后该方法将返回null。

3 应用程序

应用程序是一项非常重要的属性,所有应用程序相关的方法都写在Application类中。它可以获取或设置当前程序的一些属性,比如加载游戏关卡,获取资源文件路径,退出当前游戏程序,获取当前游戏平台等。

3.1 创建关卡

游戏关卡也可以称为游戏场景。任何一个完整的游戏都是由若干场景组成的,比如游戏菜单场景、游戏主界面场景、战斗场景、胜利场景和通关场景等。通过这些场景的组合,可将整个游戏拆分成若干个模块,而在程序中可使用代码直接切换这些模块。

使用Unity创建一

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值