发表于: 2019-11-03 23:17:34

2 934



今天完成的事情:

1.完善杀手杀人界面的逻辑


明天计划的事情:

1.继续任务四。把逻辑都写好。


遇到的问题和收获:

1.杀手杀人的界面,想将人员的存活情况和点击后死亡情况保存进数组。

首先声明一个对象,之后把数组中的元素转化对应为对象。

function $player(role, state) {
   this.role = role;
   this.state = state;
}

for (var i = 0; i < (killerWaterNum.length); i++) {
   if (killerWaterNum[i] === "水民") {
       killerWaterNum[i] = new $player("水民", "alive");
   } else {
       killerWaterNum[i] = new $player("杀手", "alive");
   }
   console.log(killerWaterNum[i]);


2.写出点击盒子对应的状态。点击后添加类名“death”,设置为更改背景色。然后每次点击前再清除背景色,保证点击其它盒子时,此盒子颜色消失。获取到盒子的当前下标后,当点击到杀手盒子,会弹出提示,此时杀手盒子不变色。水民的盒子点击后会写进一个死亡状态。 至于这个状态怎么用出来,后面再研究下。。。

$(".box-people").click(function () {
   var word = $(".word");

   word.removeClass("death");//每次点击前清除背景颜色
   $(".box-hidden").hide();//点击前先隐藏掉刀子,避免点击另一个盒子后,前一个盒子一直显示.
   $(this).children(".box-hidden").show();//获取当前对象下所有子元素.box-hidden并显示
   var dieNum = $(this).index();//获取下标
   //按下确定按钮后添加death样式,人物框变色。
   if (killerWaterNum[dieNum].role === "杀手") {
       alert("自己人,大哥!")
   } else {
       word.eq(dieNum).addClass("death");
       killerWaterNum[dieNum].state = "dead";

   }

});


3.了解到了for循环和for in。for...in 语句用于对数组或者对象的属性进行循环操作。for循环是对数组的元素进行循环,而不能引用于非数组对象。

for(int 变量初始值;条件;递增或递减){
    在此执行代码
}


for (变量 in 对象)
{
    在此执行代码
}

例如

for (var i = 0; i < (killerWaterNum.length); i++

也可以写成

for (var i in killerWaterNum.length)

不过不太会用,尝试了改成这种,后面的数组元素转化为对象会有警告。


3.难点在于理解传参。怎么把当前页面的数据保存并传递出去。怎样判断当前界面的状态,并作出反应。



返回列表 返回列表
评论

    分享到