qq_37439599 2021-02-16 12:33 采纳率: 100%
浏览 49
已采纳

JS 应该是根据数组排序和索引添加obj的问题

做了一个demo 我用的PixiJS

先遍历了数据库英雄列表,把这些英雄添加到 heroCont 这个父容器,然后通过单击每个英雄在下方五个框中按顺序再绘制相应的英雄。

还可以单击下面的五个英雄,把相应的英雄删除。

现在遇到的问题是,比如当我反复删除和添加几次后,原本应该绘制在下面五个中下标 [2] 的图标会加到 [3]里甚至是之后的其他里。然后怎么点也不绘制了。

下面是代码:

let heroArr = ["","","","",""];

heroCont.on('pointerup',(e) => {
                         if(childs.children.length < 6 ){
                               let qi = new Container();
                                   qi.interactive = true;
                          for(let j=0;j<heroArr.length;j++){
                            if(heroArr[j]==""){
                              showHeros(playerHeros[i],qi);
                              qi.x = saveX[j];
                              qi.y = heroBucketCont.y;
                              childs.addChild(qi);
                              heroArr.splice(j,1,1); 
                              break
                            }
                         }
                       qi.on('pointerup',(e) => {
                          for(let j=0;j<heroArr.length;j++){
                            if(heroArr[j] == 1){
                              let inx = childs.getChildIndex(qi);
                               childs.removeChildAt(inx);
                               heroArr.splice(inx,1,"");
                               break
                            }
                          }
                       });
               }
                  });

我尝试了添加判断,还是不行。
数组heroArr 是为了定位下面五个英雄的顺序

playerHeros[i] 是英雄相关图片信息

我想的是点击 heroCont 创建 qi 这个容器,遍历 heroArr 查看他的元素值里有没有为 "" 的,如果有就用  showHeros(playerHeros[i],qi) 绘制出来,再把每个 qi 添加到 childs 这个总的容器里,并设置相应的 heroArr 值为1
(以上代码成功实现了)

之后点击 qi 通过 heroArr[j] == 1 (heroArr[j] == 1可以不用判断)后 ,inx 得到 qi 在 childs 中的下标,并设置相应的 heroArr 值为 "" ,这样循环。

可是比如当我反复删除和添加几次后,原本应该绘制在下面五个中下标 [2] 的图标会加到 [3]里甚至是之后的其他里。然后怎么点也不绘制了。

会是什么原因造成的?

  • 写回答

3条回答 默认 最新

  • 幻灰龙 2021-02-16 22:10
    关注

    你这种不是某种知识点问题,而是如何写好代码的问题。把你的代码拆成几个简单的功能明确的函数,单独测试这些函数的正确性,再组装起来使用。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 PointNet++的onnx模型只能使用一次
  • ¥20 西南科技大学数字信号处理
  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥15 R语言绘制密度图,一个密度曲线内fill不同颜色如何实现
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧,别用大模型回答,大模型的答案没啥用
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。