发表于: 2019-11-21 21:12:27

1 917



今天完成的事情:

1.优化代码,测试一下全功能齐全。

明天计划的事情:

1.phonegap或者HBuilder,查了下资料,前者被形容为比较落后,于是打算先用后者。


遇到的问题和收获:

1.把数据储存数量减少了,之前存了八九个,都添加进了数组。不过步骤和天数这两个不是特别好搞,但还可以继续调试下。


2.滑块页使用jquery。

var inputNumber = $("#inputNumber")[0];
var rangeNumber = $("#rangeNumber")[0];
var killer = $("#killer")[0];
var waterPeople = $("#waterPeople")[0];


调试时发现随着滑块移动,人数不随之变化。查找原因,是调整代码时不小心删掉了调用函数的一行。细节要注意。


3.流程页是设置了一个初始的数组,变量内容是空,以此作为下标0的对象,将一些变量都只存于下标0的这个对象里,不随天数变化来改动。例如每次点击按钮后count会+1,我只存于第一个对象,调用也只调用下标0,应该是方便一点。

var deadKill = deadPeople[dieNum].num + "死,真实是水民";
var voteKill = deadPeople[dieNum].num + "被投票投死,真实" + deadPeople[dieNum].role;

if (history1 === null) {
   history1 = [];
   var obj = {
       deadKill: "",
       voteKill: "",
       killNum: "",
       voteNum: "",
       // state: "",
       // myDay:"",
       look: "",
       count: "",
       godLook: ""
   };
   history1.push(obj);
   //死亡状态存入记录数组,方便流程页历记录引用
}


4.杀人界面这里想了想不清楚如何优化更好。


for (var i = 0; i < deadPeople.length; i++) {
   main.append(Player(deadPeople[i].role, i));
   statePeople = $(".box-people");
   dieNum = $(this).index();//取下
   if (deadPeople[i].state === "dead" && history2[0].look === 1) {
       statePeople.eq(i).css("pointer-events", "none");/*事件失效*/
       $(".word").eq(i).css("backgroundColor", "#C9C9C9");

实现逻辑是,根据for循环,长度是所有玩家的人数。

通过遍历,显现出杀手、水民的人物框。通过index获取当前点击的下标。

然后进行if判断,如果有人物死亡,且look为1(杀手按钮按下时look为1,投票按钮按下为4,以此判断是通过哪个按钮进入的杀人页)

则让所有死亡人物框的点击失效,改变背景色。



 else if (deadPeople[i].state === "dead" && history2[0].look === 4) {
   $("#judge-diary").text("投票");
   $(".title-2").text("讨论结束,大家投票");
   $(".word-1").text("得票最多的人的");
   statePeople.eq(i).css("pointer-events", "none");/*事件失效*/
   $(".word").eq(i).css("backgroundColor", "#C9C9C9");

或者如果有人物死亡,且look为4,改变文本内容,将标题的杀人改成投票的文字,同时让死亡人的点击失效,背景改变。



 else if (deadPeople[i].state === "dead" &&  history2[0].godLook === 1) {
   $("#judge-diary").text("法官日");
   $("header").remove();//移除多余文字
   sure.text("返回");
   main.css("marginTop", "4.5rem");
   statePeople.eq(i).css("pointer-events", "none");//事件失效
   $(".word").eq(i).css("backgroundColor", "#C9C9C9");//法官按钮时界面文字等容。

再或者有人死亡,且godlook为1(点击法官日志设置有此参数),法官日志界面只能查看,不能做任何修改,故将文本改成法官日记内容,样式微调,让所有点击失效,修改死亡框背景色。


else if ( history2[0].godLook === 1) {
       $("#judge-diary").text("法官日");
       $("header").remove();//移除多余文字
       sure.text("返回");
       main.css("marginTop", "4.5rem");
       statePeople.css("pointer-events", "none");//事件失效
   }
}

再或者仅有godlook为1,此情形出现在刚进入流程页,不点击杀人按钮,直接点击法官日记,故无人死亡,仅有一个godlook值1。

修改文本和样式微调,让所有点击失效。


以上的godlook,look直接取history2数组第一个对象里的数据。



总代码:




返回列表 返回列表
评论

    分享到