修复bug及修复过程
1.本地存储数据显示不出问题
- 问题细节:
- 本地使用如下语句存储成绩,"ScoreDisplay"为键,值为this.score.toString(),但是在cocos creator 预览一切正常,构建发布之后,问题就出现了!
cc.sys.localStorage.setItem("ScoreDisplay",this.score.toString());
- 游戏GameOver之后,不能加载出来得分情况场景
- Gameing场景
- GameOver场景(有bug)
- 是黑屏,IE浏览器给的问题反馈是:
- 解决方案
- 解决原理,本地存储的数据,发布到web Mobile 或者是Web Desktop之后,网页上是存储不了数据的,所以才会导致前面的错误。
- 本地存储数据的功能:内部有好多js文件分别控制着不同的scene场景,Gaming和GameOver就是两个场景,在场景切换的时候,在Gaming里面的得分数据也会带到GameOver场景,能实现数据的这种传递功能的,就是使用本地存储。
- 解决办法:既然使用本地数据的方式去传递会出错,那么,换一种方式,使用全局变量呢?几经尝试,终于使用全局变量的方式解决!
- 解决之后的Gaming场景中的gainScore逻辑如下:
gainScore:function (pos) {
window.score += 1;
this.scoreDisplay.string = window.score.toString();
//cc.sys.localStorage.setItem("ScoreDisplay",this.scoreDisplay.string);
var fx = cc.instantiate(this.scoreFXPrefab).getComponent('ScoreFX');
this.node.addChild(fx.node);
fx.node.setPosition(pos);
fx.play();
cc.audioEngine.playEffect(this.scoreAudio,false);
},
- GameOver场景中的更新积分的逻辑如下:(由原来的从本地存储的变量中获取的数据,变成了从全局变量中获取)
disScore: function () {
//this.score = cc.sys.localStorage.getItem("ScoreDisplay");
this.score = window.score;
this.Scores.string = "Score: " + this.score.toString();//显示
},
2.左上方音乐点击“没反应”问题
- 问题细节:
- 请看如下图片
- 红圈中的喇叭,要实现的功能是:点击,关闭背景音乐,再次点击打开背景音乐。
- 这个问题,我们采坑了!找了半天,才发现,数据捕捉有问题。
- 最初使用的函数是一下这个,(有bug的)
- 请看如下图片
var rec = cc.rectEqualToRect(this.node.getBoundingBoxToWorld(),pos) ;
- 官网上面对他的定义是:
- 判断手触摸的位置和喇叭所在区域是否相等,相等就更改当前音乐状态,多正常的逻辑!
- 找了好多方案,真的是行不通啊!最后的最后,我们换了个函数,讲上面的代码更换为,如下:
var rec = cc.rectContainsPoint(this.node.getBoundingBoxToWorld(),pos) ;
- 终于问题解决了。
- ### 无bug版本的声音开关逻辑如下:
setCp:function(pos){
var rec = cc.rectContainsPoint(this.node.getBoundingBoxToWorld(),pos) ;
if(rec){
if(this.isOpen){
cc.audioEngine.pauseMusic();
cc.log("暂停正在播放音乐");
this.isOpen = false;
}
else {
cc.audioEngine.resumeMusic ();
cc.log("恢复背景音乐");
this.isOpen = true;
}
}
},
3. 数据冲突导致的“致命”大问题!!
- 我之所以后悔自己没有做好“**数据备份**”的原因也就在这里!
- 这个问题,是我遇到的一个重大号问题!就在周二下午,当我默默庆幸,软工已经昨晚的时候,打算打开**构建面板进行发布的时候**,发现**构建面板居然发布了!!!**我的所有数据,几乎已经完成了的数据,都在这个上面!!!我查了一些资料,发现是由于**新旧数据冲突导致面板打不开**,我尝试删掉一些东西。但发现,已删除就出错,各种错误!
- 解决办法:现在“零件”已经有了,再重新“组装一遍不就行了” ,说的轻松,真正实践起来远没有这么简单,这个“致命问题”修复了不下5个小时!好在庆幸,已经解决。
- ### 这个给我的警示:一定要注意数据备份,这个项目不出问题是不出问题,一出问题就不是一两个小时可以解决的!
修复bug及修复过程的更多相关文章
- 修复bug有哪些更快的技术?做好这6点就够了
你有没有想过为什么有时修复错误似乎比它应该花费更长的时间?当你终于找到问题时,事实证明你所需要的只是一个小小的改变.然而,花了很多时间才能找到正在发生的事情.这种情况比我想象的更频繁. 另一方面,当您 ...
- [课程设计]Scrum 3.5 多鱼点餐系统开发进度(修复Bug&美化页面)
Scrum 3.5 多鱼点餐系统开发进度(修复Bug&美化页面) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅 ...
- [转载]基于TFS实践敏捷-修复Bug和执行代码评审
本主题阐释了这些功能,以继续这一关注虚拟敏捷团队成员的一天的教程. Peter 忙于编写一些代码以完成积压工作 (backlog) 项任务.但是,他的同事发现了一个阻碍他们工作的 Bug,他想立即修复 ...
- Cordova webapp实战开发:(7)如何通过简单的方法做到,不重新发布APP来修复bug、增加功能、或者躲开苹果的一些严格审核?
到<Cordova webapp实战开发:(6)如何写一个iOS下获取APP版本号的插件?>为止,我们已经大体学会了如何使用Cordova了,那些都是使用Cordova的开发者必备的技能. ...
- [课程设计]Scrum 1. 9 多鱼点餐系统开发进度(最后页面完善&修复BUG&用户测试反馈)
[课程设计]Scrum 1. 9 多鱼点餐系统开发进度(最后页面完善&修复BUG&用户测试) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢 ...
- CloudStack修复bug
CloudStack应用越来越广,但是随着测试也遇到了越来越多的bug. 不想等待新版本发布而且又急于修复某些bug的童鞋,可以参考下本文内容. CloudStack是java语言写成,发布时会发布为 ...
- 献身说法---修复bug时的一些小技巧
最近,修复了项目当中的一些bug,觉着有些思路可以分享出来供大家借鉴. 场景一 开发环境中系统正常运行,测试环境中,部分机器未能正常运行. 解决过程:远程连接了测试环境中的机器,观察了系统的运行情况, ...
- 程序员:统治世界or修复bug?
程序员:统治世界or修复bug? 时至今日,我们依然生活在一个市场和技术受到高度崇拜的世界里,但是历史演化的规律提醒着我们:当一个东西开始成为社会崇拜的对象时,其中暗藏的不利因素将悄然的进行着.有人认 ...
- 使用Git分支开发新特性或修复Bug与使用Git分支开发新特性或修复Bug
使用Git分支开发新特性或修复Bug 通过分支,可以在不影响原有代码的前提下改变代码,主要用于开发新功能新特性.下 一代产品 为已经发布的正式版修复bug 团队开发时为每个人建立一个分支,从而避免相互 ...
随机推荐
- jquery之data()
$("#test").data("myProp","123") alert($("#test").data(" ...
- poj3585 树形dp 二次扫描,换根法模板题
#include<iostream> #include<cstring> #include<cstdio> #include<vector> using ...
- python 全栈开发,Day136(爬虫系列之第3章-Selenium模块)
一.Selenium 简介 selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全 ...
- Android strings.xml中定义字符串显示空格
<string name="str">字 符 串</string> 其中 就表示空格.如果直接在里面键入空格,无论多少空格都只会显示一个. 用的XML转 ...
- Linux 忘记了mysql 密码
killall mysqld /usr/local/mysql/bin/mysqld_safe --skip-grant-tables & use mysql update user set ...
- C#编程的语法积累(一)
1.自动属性 之前的实现方式: private int id; public int Id { set {id = value;} get {return id;} } 现在可通过自动属性实现: pu ...
- 031 分布式中,zookeeper的部署
一:准备 1.概述 为分布式应用提供协调服务的项目 提供一个简单的原语集合,以便于分布式应用可以在它之上构建更高层次的同步服务. 类似于文件系统那样的树形数据结构 目的:将分布式服务不再由于协作冲突而 ...
- POJ1860-Currency Exchange (正权回路)【Bellman-Ford】
<题目链接> <转载于 >>> > 题目大意: 有多种汇币,汇币之间可以交换,这需要手续费,当你用100A币交换B币时,A到B的汇率是29.75,手续费是0. ...
- Python爬虫之requests+正则表达式抓取猫眼电影top100以及瓜子二手网二手车信息(四)
requests+正则表达式抓取猫眼电影top100 一.首先我们先分析下网页结构 可以看到第一页的URL和第二页的URL的区别在于offset的值,第一页为0,第二页为10,以此类推. 二.< ...
- 三篇文章带你极速入门php(二)之迅速搭建php环境
前言 今天讲一下php在windows,mac,linux上的集成环境搭建,目标是简单快速,环境这个事得对号入座,windows用phpstudy,mac用mamp,linux用lnmp一键安装,直接 ...