Cocos creator实现《战机长空》关卡本地存储功能

devtools/2024/10/19 6:23:31/

Cocos creator实现《战机长空》关卡本地存储功能

Cocos creator在开放小游戏过程中,经常会出现设置关卡,这里记录一下关卡数据本地存储功能。

一、关卡设置数据

假如我们有关卡数据如下,

let settings = [
{
level: 1, // 第1关
score: 0, // 最高得分
duration: 240, // 倒计时时长,单位为秒s
bossBlood: 100, // BOSS血量
levelState: ‘UNLOCKED’, // 关卡状态
},
{
level: 2, // 第1关
score: 0, // 最高得分
duration: 240, // 倒计时时长,单位为秒s
bossBlood: 200, // BOSS血量
levelState: ‘LOCKED’, // 关卡状态
},
}

关卡数据中定义了level、score、duration、bossBlood、levelState等数据,当进入游戏时候,我们检测是否有关卡数据,没有的话,将settings数据进行存储。

onLoad() {let localSettings = JSON.parse(cc.sys.localStorage.getItem('settings'));if (!localSettings) {cc.sys.localStorage.setItem('settings', JSON.stringify(settings));}
}

二、选择关卡

当开始游戏后,我们需要选择关卡,选择关卡从localStorage取出当前的level信息

selectLevel() {let currentLevelInfo = JSON.parse(cc.sys.localStorage.getItem('currentLevelInfo'));if (!currentLevelInfo) {if (!cc.sys.localStorage.getItem('settings')) {// 将所有关卡信息存入本地(针对首次游戏)cc.sys.localStorage.setItem('settings', JSON.stringify(settings));let levelSetting = settings[0];// 将目标关卡信息存入本地,在Game.js中取出cc.sys.localStorage.setItem('currentLevelInfo', JSON.stringify(levelSetting));} else {// 如果玩家已经玩过,则从本地存储中获取关卡配置信息let newSettings = JSON.parse(cc.sys.localStorage.getItem('settings'));// 将目标关卡信息存入本地,在Game.js中取出let levelSetting = newSettings[0];cc.sys.localStorage.setItem('currentLevelInfo', JSON.stringify(levelSetting));}}}

进入游戏界面,我们设置游戏的总时长,及显示当前的关卡level

// 首先获取当前关卡信息this.currentLevelInfo = JSON.parse(cc.sys.localStorage.getItem('currentLevelInfo'));this.levelLabel.string = "第" + this.currentLevelInfo['level'] + "关";// 默认总时长this.countDuration = this.currentLevelInfo['duration'];this.interval = 1;

游戏成功后更新本地存储的最高分

if (gameResultData.isWin) {if (gameResultData.gotStarScore > localSettings[this.currentLevelInfo['level'] - 1]['score']) {localSettings[this.currentLevelInfo['level'] - 1]['score'] = gameResultData.gotStarScore;}cc.sys.localStorage.setItem('settings', JSON.stringify(localSettings));    }

效果图如下
在这里插入图片描述

三、小结

Cocos creator实现《战机长空》关卡本地存储功能。描述可能不是特别准确,请见谅。

学习记录,每天不停进步。

战机长空
在这里插入图片描述

http://www.ppmy.cn/devtools/41167.html

相关文章

Meta最新研究: Flash Attention 为何是系统性能瓶颈?

I. 引言 随着机器学习趋向于更大和更复杂的模型,模型训练过程变得越来越计算和资源密集。生成式AI的出现进一步推动了模型开发的边界,大型语言模型(LLMs)通常在数百或数千个GPU上训练数月。以LLaMA2的70-B参数模型为例,需要1,720,320 GPU小时来训练。对于如此长的训练作业,训练…

[3D基础]Delaunay与Triangulate构网

Delaunay三角剖分(Delaunay Triangulation)和Triangulate构网是两种常用于生成三角网格的方法,它们都有其独特的特点和应用场景。 Delaunay三角剖分: Delaunay三角剖分是一种经典的三角剖分方法,其特点是任意三角形的外…

【Element-UI快速入门】

文章目录 **Element-UI快速入门****一、Element-UI简介****二、安装Element-UI****三、引入Element-UI****四、使用Element-UI组件****五、自定义Element-UI组件样式****六、Element-UI布局组件****七、Element-UI表单组件****八、插槽(Slots)和主题定制…

最长回文子串 Java实现和原理

最长回文子串问题概述 最长回文子串问题是一个经典的字符串处理问题,它的目标是找到一个字符串中最长的回文子串。回文是指一个正读和反读都一样的字符串,如 “aba” 或 “level”。这个问题在计算机科学中具有重要的应用价值,如生物信息学中…

数据仓库之Hive

官方文档 简介 Apache Hive 是一个开源的数据仓库基础架构,用于在大规模数据集上进行数据汇总、查询和分析。它提供了一个类似于 SQL 的查询语言(HiveQL),使用户能够通过类似于传统数据库的查询方式来处理大规模的结构化和半结构…

【Linux系统编程】第十八弹---进程状态(上)

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、操作系统进程 1.1、进程背景 1.2、进程如何在CPU上运行的? 1.2、进程状态 2、Linux的进程状态 2.1、如何描…

python将图片以及标注信息按类别分开

目录 需求: 思路: 原数据集结构: 代码1(效率低,但不用提前知道需要分多少个类别): 代码2(效率相对高点,但类别数量如果超过设定的11个,则需要改下代码&a…

专访安克创新CEO阳萌:仿生算法与存算一体芯片的兴起

在这篇博客中,我们将探讨人工智能的未来发展方向,特别是围绕大模型、存算一体芯片以及仿生算法的讨论。通过对安克创新CEO阳萌的专访内容进行分析,我们将尝试解答一些关于AI发展的关键问题,并对未来的技术趋势进行预测。 引言 …