发表于: 2017-06-24 23:55:35

1 813


一、今天完成的事:

1.重写了游戏流程页面,根据dom节点操作所有的流程;

2.重写杀人判断,将已经死了的玩家号码存储,便于在流程页面插入杀死的玩家


二、明天的计划:

1.继续任务4


三、遇到的问题:

1.流程页面插入杀死的玩家信息的时候,第一天正常,第二天发现判断中的dom节点大于页面中的dom节点,导致无法出入死亡玩家信息,循环做的有问题,明天继续研究;

问题代码如下:希望师兄解惑

for (var i = 0; i < n.length; i++) {
if (i%2 == 0 ) {

$(content[i]).children("#a1").after("<p class='die-color'>" + n[i] + "号被杀死 ," + n[i] + "号是水民" + "</p>");

   }else if (i%2 == 1) {
$(content[i-1]).children("#a4").after("<p class='die-color'>" + n[i] + "号被投死 ," + n[i] + "号是" + allPlayers[n[i]-1].id  + "</p>");


   }


四、收获:

1、将杀死的玩家号码存储起来,然后传到sessionStorage,之后再流程页面将所有已死的玩家号码取出来,添加到流程节点中,但是需要注意,每次都需要将数组清空,这样才能获取到最后点击的玩家的号码:

var dieNums = [];
dieNums.push(allPlayers[this.index].num);
sessionStorage.setItem("dieNums",JSON.stringify(dieNums));

2、在流程页面提取死亡玩家号码的时候,需要注意,先在别的页面定义一个空数组并传到sessionStorage,再将死亡玩家号码,添加到该数组中,不然的话,每次只能生成一个数据,无法取到所有死亡玩家的号码:

var dieNums = JSON.parse(sessionStorage.getItem("dieNums"));
console.log(dieNums);
var dieNum = JSON.parse(sessionStorage.getItem("dieNum"));
if (dieNums == null) {
}else {
dieNum.push(dieNums[dieNums.length-1]);
}

3、死亡玩家的数组提取后,是由重复数据的,因为每次会发生两次页面跳转,导致数组中会有重复数据,需要添加去重函数:

注意indexof的用法和if中的判断;

// 最简单数组去重法
var n = []; //一个新的临时数组
function unique1(array){
//遍历当前数组
   for(var i = 0; i < array.length; i++){
//如果当前数组的第i已经保存进了临时数组,那么跳过,
//否则把当前项push到临时数组里面
       if (n.indexOf(array[i]) == -1) n.push(array[i]);
   }
return n;
}
unique1(dieNum);
console.log(n);



返回列表 返回列表
评论

    分享到