最早的版本,也是后来改进的基础,有兴趣的可以看下:
https://blog.csdn.net/linw321456/article/details/106472398?spm=1001.2014.3001.5501
这里不会在具体展示代码了,只简单介绍下,后来使用过程中遇到的一些问题以及解决方案。
一开始对整个编程的过程和理解都有很多的问题,以至于基础版有各种各样甚至是千疮百孔般的问题:
a. 在单独一格体力结束计时后,会继续计时;
b. 体力会有时扣掉一格,有时扣掉2格,甚至多格体力;
c. 恢复体力也会出现一次恢复2格或多格的情况;
d. 在倒计时到1:00或者新的一轮2:00计数时会有的1s停顿
e. 在游戏退出后,重新进入游戏,时间间隔并不计入统计
f. 以上都是小问题,这两个js文件的使用竟然还会造成游戏卡顿…
解决问题的过程其实真的很有意思,即使各种找不到原因,但是解决的那一刻真的很舒爽。
A. 其实就是简单的判断做复杂了
B. 掉体力是通过事件判断驱动的,但是每次事件完成要取消,否则就会叠加
C. 恢复体力同上
D. 这就是基础代码里的结构问题
E. cc.sys.localStorage的判断问题
F. 重点说这个吧
首先就是因为退出游戏回到游戏,只能通过cc.sys.localStorage来保存数据,一些简单的小游戏都需要一些基本的数据,比如,时间,最佳分数等。
本人很愚蠢的给每个参数都来了一个localStorage,比如:min, sec, bestscore, lastbestscore, ttl_sec,time_display…貌似第一次用了7个左右,写了几十次…
后来改了下,只用到两个,一个就是ttl_sec,一个是bestscore,毕竟这两个好像不能换算。
其他的min,sec, time_display都可以用ttl_sec换算得到,所以只取一个。
改完以后,一下顺畅了许多。
另外,因为这是一开始为做小游戏做的,所以我查了下weChat的官方文档,里面有两个接口wx.show和wx.off,貌似可以把ttl_sec的localStorage都省了。