发表于: 2017-06-20 21:55:49
1 923
今天主要还是进行任务4,但是实际进展不是很快
1. 目前为止完善了全部对象存储的属性
roleStatus[i] = {};
roleStatus[i].num = i+1;
roleStatus[i].identity = roles[i];
roleStatus[i].status = "alive";
roleStatus[i].day = 1;
2. 昨天写的页面发现可以一次杀死多个人,这次改在确定杀死之前做了一个去重,为玩家div添加一个click,点击触发函数
if (roles[this.index] == "杀手") {
return false //确保点击杀手无任何作用
} else {
if (victim != undefined) {
//先检查有没有被选中的人,如果有则将其状态颜色还原
cards[victim].style.background = "#fbb435";
roleStatus[victim].status = "alive";
}
$(this).css("backgroundColor","#ff0000");
victim = this.index;
roleStatus[this.index].status = "dead";
console.log(roleStatus);
}
定义受害人为“victim”,然后运用this(选中当前的对象)。先是通过确定当前玩家身份是杀手时,无法进行有效点击,防止杀掉杀手,然后先执行
$(this).css("backgroundColor","#ff0000");
victim = this.index;
roleStatus[this.index].status = "dead";
选中部分的玩家div会改变背景色,受害者victim被赋值为当前选中部分的对象的编号,玩家状态由alive变为dead
但是如果此时点其他的玩家div,victim就不为未定义具体值的状态,触发if判断,背景色和玩家状态被重置
3. 最终进行页面的跳转
for (var c=0; c<roles.length; c++){
roleStatus[c].day++;
sessionStorage.setItem("playerStatus",JSON.stringify(roleStatus));
window.location.href = "js-2-decode.html";
}
所有人天数加1,全部对象的属性被存储,但是这时要进行的一个判断是,必须杀人才能进行页面跳转
4. 写了跳转后页面较简单的部分,但是玩家死法分为实际投票杀死和杀手杀死,为防止重复被杀需要一个去重,还有最后跳转到结果页面时对输赢的判断需要完成
明天计划继续任务4,json感觉不理解的比较多,需要多看看
今天主要遇到了一个小问题
if (victim == undefined) {
alert("请杀死一个平民");
}
未进行具体值定义时会显示undefined,但是一个等号是赋值,两个等号才是具体值判断,因为这个细节语句判断出了很多问题
收获主要还是熟练了js里面改变css,插入html元素,触发函数等的应用
评论