<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      在之前我記得我記錄過e社海陸的制作,但是翻了下,好像找不到了,所以準(zhǔn)備重新記錄,這個(gè)東西思考了兩三天,甚至于我不得不翻以前的代碼,才完成了相關(guān)思路.故記錄下來以防遺忘.

      思路:

       

      1. 如圖,海陸邊緣由周圍六個(gè)邊來決定.所以我們每次切換海陸時(shí),都需要遍歷格子周圍的一圈坐標(biāo),判斷他們的走向,并更新為相關(guān)顯示

      2.河流,河流的判斷與海陸的判斷思路基本一致,   但是如果照抄海陸,會(huì)出現(xiàn)三角形的情況(下圖1)

       

       我們需要額外判斷,當(dāng)格子的斜方向格子是河流的時(shí)候,垂直方向的河流方向判斷應(yīng)該為false,因?yàn)橛螒蛑胁豢赡艹霈F(xiàn)三角形河流

       

       

       

       //自動(dòng)海陸
          public void checkCoast() {
              for (int i = 0; i < mapBins.size(); i++) {
                  autoCoast(i, false);
              }
          }
      
      
          //生成海岸
          // Gdx.app.log("autoCoast", "id:"+i+" coastId:"+c);
          public void autoCoast(int id, boolean ifAround) {
              List<Integer> tempIds = new ArrayList();
              if (ifAround) {
                  List<Integer> ids = getAroundIdById(id, 0, null);
                  ids.add(id);
      
                  for (Integer i : ids) {
      
      
                      int c = getCoastId(i, tempIds);
                      if (c != -1) {
                          //mapBins.get(i).initGrid();
                          mapBins.get(i).setBackTile(2);
                          mapBins.get(i).setBackIdx(c);
                      } else {
      
                      }
                  }
      
              } else {
                  /*
                   * int s; if(id==7309) { s=1; } if (ifBorder(id)) { dealBorder(id);
                   * } else
                   */
                  {
                      int c = getCoastId(id, tempIds);
                      // Gdx.app.log("autoCoast", "id:"+id+" coastId:"+c);
                      if (c != -1) {
                          //mapBins.get(id).initGrid();
                          mapBins.get(id).setBackTile(2);
                          mapBins.get(id).setBackIdx(c);
                          /*mapBins.get(id).bmTerrain1Group = 1;
                          mapBins.get(id).bmTerrain1Id = 0;
                          mapBins.get(id).bmTerrain1X = 0;
                          mapBins.get(id).bmTerrain1Y = 0;
                          mapBins.get(id).bmDoodad1Group = 31;
                          mapBins.get(id).bmDoodad1Id = c;
                          mapBins.get(id).bmDoodad1X = 0;
                          mapBins.get(id).bmDoodad1Y = 0;
                          mapBins.get(id).bmDoodad2Group = 63;
                          mapBins.get(id).bmDoodad2Id = 255;
                          mapBins.get(id).bmDoodad2X = 0;
                          mapBins.get(id).bmDoodad2Y = 0;*/
                      }
                  }
      
              }
              //land
              /*if (mapBins.get(id).getBlockType() != 1) {
                  if ((mapBins.get(id).getBackTile() == 2 )) {
                      mapBins.get(id).setBackTile(0);
                      mapBins.get(id).setBackIdx(0);
                  }
              } else  {//(mapBins.get(id).getBlockType() == 1)
                  mapBins.get(id).setBackTile(1);
                  mapBins.get(id).setBackIdx(0);
              }*/
          }
      private int getCoastBorderId(int id, List<Integer> ids) {
      
              if (ids == null) {
                  ids = new ArrayList<>();
              } else {
                  ids.clear();
              }
              boolean t1 = ifSameByTypeInCoastBorder(id, 1);
              boolean t2 = ifSameByTypeInCoastBorder(id, 2);
              boolean t3 = ifSameByTypeInCoastBorder(id, 3);
              boolean t4 = ifSameByTypeInCoastBorder(id, 4);
              boolean t5 = ifSameByTypeInCoastBorder(id, 5);
              boolean t6 = ifSameByTypeInCoastBorder(id, 6);
              if (t1) {
                  if (t2) {
                      if (t3) {
                          if (t4) {
                              if (t5) {
                                  if (t6) {
                                      return 0;
                                  } else {
                                      return 60;
                                  }
                              } else {
                                  if (t6) {
                                      return 56;
                                  } else {
                                      return 52;
                                  }
                              }
                          } else {
                              if (t5) {
                                  if (t6) {
                                      return 48;
                                  } else {
                                      return 44;
                                  }
                              } else {
                                  if (t6) {
                                      return 40;
                                  } else {
                                      return 36;
                                  }
                              }
                          }
                      } else {
                          if (t4) {
                              if (t5) {
                                  if (t6) {
                                      return 62;
                                  } else {
                                      return 58;
                                  }
                              } else {
                                  if (t6) {
                                      return 54;
                                  } else {
                                      return 50;
                                  }
                              }
                          } else {
                              if (t5) {
                                  if (t6) {
                                      return 46;
                                  } else {
                                      return 42;
                                  }
                              } else {
                                  if (t6) {
                                      return 38;
                                  } else {
                                      return 34;
                                  }
                              }
                          }
                      }
                  } else {
                      if (t3) {
                          if (t4) {
                              if (t5) {
                                  if (t6) {
                                      return 63;
                                  } else {
                                      return 59;
                                  }
                              } else {
                                  if (t6) {
                                      return 55;
                                  } else {
                                      return 51;
                                  }
                              }
                          } else {
                              if (t5) {
                                  if (t6) {
                                      return 47;
                                  } else {
                                      return 43;
                                  }
                              } else {
                                  if (t6) {
                                      return 39;
                                  } else {
                                      return 35;
                                  }
                              }
                          }
                      } else {
                          if (t4) {
                              if (t5) {
                                  if (t6) {
                                      return 61;
                                  } else {
                                      return 57;
                                  }
                              } else {
                                  if (t6) {
                                      return 53;
                                  } else {
                                      return 49;
                                  }
                              }
                          } else {
                              if (t5) {
                                  if (t6) {
                                      return 45;
                                  } else {
                                      return 41;
                                  }
                              } else {
                                  if (t6) {
                                      return 37;
                                  } else {
                                      return 33;
                                  }
                              }
                          }
                      }
                  }
      
              } else {//t1
                  if (t2) {
                      if (t3) {
                          if (t4) {
                              if (t5) {
                                  if (t6) {
                                      return 32;
                                  } else {
                                      return 28;
                                  }
                              } else {
                                  if (t6) {
                                      return 24;
                                  } else {
                                      return 20;
                                  }
                              }
                          } else {
                              if (t5) {
                                  if (t6) {
                                      return 16;
                                  } else {
                                      return 12;
                                  }
                              } else {
                                  if (t6) {
                                      return 8;
                                  } else {
                                      return 4;
                                  }
                              }
                          }
                      } else {
                          if (t4) {
                              if (t5) {
                                  if (t6) {
                                      return 30;
                                  } else {
                                      return 26;
                                  }
                              } else {
                                  if (t6) {
                                      return 22;
                                  } else {
                                      return 18;
                                  }
                              }
                          } else {
                              if (t5) {
                                  if (t6) {
                                      return 14;
                                  } else {
                                      return 10;
                                  }
                              } else {
                                  if (t6) {
                                      return 6;
                                  } else {
                                      return 2;
                                  }
                              }
                          }
                      }
                  } else {
                      if (t3) {
                          if (t4) {
                              if (t5) {
                                  if (t6) {
                                      return 31;
                                  } else {
                                      return 27;
                                  }
                              } else {
                                  if (t6) {
                                      return 23;
                                  } else {
                                      return 19;
                                  }
                              }
                          } else {
                              if (t5) {
                                  if (t6) {
                                      return 15;
                                  } else {
                                      return 11;
                                  }
                              } else {
                                  if (t6) {
                                      return 7;
                                  } else {
                                      return 3;
                                  }
                              }
                          }
                      } else {
                          if (t4) {
                              if (t5) {
                                  if (t6) {
                                      return 29;
                                  } else {
                                      return 25;
                                  }
                              } else {
                                  if (t6) {
                                      return 21;
                                  } else {
                                      return 17;
                                  }
                              }
                          } else {
                              if (t5) {
                                  if (t6) {
                                      return 13;
                                  } else {
                                      return 9;
                                  }
                              } else {
                                  if (t6) {
                                      return 5;
                                  } else {
                                      return 1;
                                  }
                              }
                          }
                      }
                  }
              }
          }
      
      
      public boolean ifSameByTypeInCoastBorder(int idA, int direct) {
              int idB = getIdInDirect(idA, direct);
      
              //Gdx.app.log("", "idA:"+idA+" idB:"+idB+" direct:"+direct+ " aG:"+getBlockType(idA)+ " bG:"+getBlockType(idB));
              if (idB == -1) {
                  return true;
              } else if (idB >= 0 && idB < mapBins.size() && mapBins.get(idA).getBlockType() == 1 && mapBins.get(idB).getBlockType() == 1) {
                  return true;
              } else {
                  return false;
              }
          }
          public boolean ifSameByTypeInRiverBorder(int idA, int direct) {
              int idB = getIdInDirect(idA, direct);
      
              //Gdx.app.log("", "idA:"+idA+" idB:"+idB+" direct:"+direct+ " aG:"+getBlockType(idA)+ " bG:"+getBlockType(idB));
              if (idB == -1) {
                  return true;
              } else if (idB >= 0 && idB < mapBins.size() && mapBins.get(idA).getBackTile() == 11 && mapBins.get(idB).getBackTile() == 11) {
                  return true;
              } else {
                  return false;
              }
          }
      
      public void autoRiver(int id, boolean ifAround) {
              List<Integer> tempIds = new ArrayList();
              if (ifAround) {
                  List<Integer> ids = getAroundIdById(id, 0, null);
                  ids.add(id);
      
                  for (Integer i : ids) {
      
      
                      int c = getRiverId(i, tempIds);
                      if (c != -999) {
                          if(c==-1){
                              mapBins.get(i).setBackTile(11);
                              mapBins.get(i).setBackIdx(63);
                          }else{
                              mapBins.get(i).setBackTile(11);
                              mapBins.get(i).setBackIdx(c);
                          }
                      } else {
      
                      }
                  }
      
              } else {
                  /*
                   * int s; if(id==7309) { s=1; } if (ifBorder(id)) { dealBorder(id);
                   * } else
                   */
                  {
                      int c = getRiverId(id, tempIds);
                      // Gdx.app.log("autoCoast", "id:"+id+" coastId:"+c);
                      if (c != -999) {
                          if(c==-1){
                              mapBins.get(id).setBackTile(11);
                              mapBins.get(id).setBackIdx(63);
                          }else{
                              mapBins.get(id).setBackTile(11);
                              mapBins.get(id).setBackIdx(c);
                          }
                      }
                  }
      
              }
              int c = getRiverId(id, tempIds);
              if (c != -999) {
                  if(c==-1){
                      mapBins.get(id).setBackTile(11);
                      mapBins.get(id).setBackIdx(63);
                  }else{
                      mapBins.get(id).setBackTile(11);
                      mapBins.get(id).setBackIdx(c);
                  }
              } else {
      
              }
          }
      
      private int getCoastId(Integer id, List<Integer> ids) {
              if (mapBins.get(id).getBlockType() != 1) {//
                  return -1;
              }
              int rs = getCoastBorderId(id, ids);
              return rs-1 ;
      
          }
      
      private int getRiverId(Integer id, List<Integer> ids) {
              if (mapBins.get(id).getBackTile() != 11) {//
                  return -999;
              }
              int rs = getRiverBorderId(id, ids);
      
              //根據(jù)自己的坐標(biāo)來進(jìn)行偏移
              return rs-1 ;
      
          }
      
      
          private int getRiverBorderId(int id, List<Integer> ids) {
      
              if (ids == null) {
                  ids = new ArrayList<>();
              } else {
                  ids.clear();
              }
              //左上1,上2,右上3,左下4,下5,右下6
              boolean t1 = ifSameByTypeInRiverBorder(id, 1);
              boolean t2 = ifSameByTypeInRiverBorder(id, 2);
              boolean t3 = ifSameByTypeInRiverBorder(id, 3);
              boolean t4 = ifSameByTypeInRiverBorder(id, 4);
              boolean t5 = ifSameByTypeInRiverBorder(id, 5);
              boolean t6 = ifSameByTypeInRiverBorder(id, 6);
      
              if( (t4||t6)&&t5 ){
                  t5=false;
              }
              if( (t1||t3)&&t2 ){
                  t2=false;
              }
      
              if (t1) {
                  if (t2) {
                      if (t3) {
                          if (t4) {
                              if (t5) {
                                  if (t6) {
                                      return 0;
                                  } else {
                                      return 60;
                                  }
                              } else {
                                  if (t6) {
                                      return 56;
                                  } else {
                                      return 52;
                                  }
                              }
                          } else {
                              if (t5) {
                                  if (t6) {
                                      return 48;
                                  } else {
                                      return 44;
                                  }
                              } else {
                                  if (t6) {
                                      return 40;
                                  } else {
                                      return 36;
                                  }
                              }
                          }
                      } else {
                          if (t4) {
                              if (t5) {
                                  if (t6) {
                                      return 62;
                                  } else {
                                      return 58;
                                  }
                              } else {
                                  if (t6) {
                                      return 54;
                                  } else {
                                      return 50;
                                  }
                              }
                          } else {
                              if (t5) {
                                  if (t6) {
                                      return 46;
                                  } else {
                                      return 42;
                                  }
                              } else {
                                  if (t6) {
                                      return 38;
                                  } else {
                                      return 34;
                                  }
                              }
                          }
                      }
                  } else {
                      if (t3) {
                          if (t4) {
                              if (t5) {
                                  if (t6) {
                                      return 63;
                                  } else {
                                      return 59;
                                  }
                              } else {
                                  if (t6) {
                                      return 55;
                                  } else {
                                      return 51;
                                  }
                              }
                          } else {
                              if (t5) {
                                  if (t6) {
                                      return 47;
                                  } else {
                                      return 43;
                                  }
                              } else {
                                  if (t6) {
                                      return 39;
                                  } else {
                                      return 35;
                                  }
                              }
                          }
                      } else {
                          if (t4) {
                              if (t5) {
                                  if (t6) {
                                      return 61;
                                  } else {
                                      return 57;
                                  }
                              } else {
                                  if (t6) {
                                      return 53;
                                  } else {
                                      return 49;
                                  }
                              }
                          } else {
                              if (t5) {
                                  if (t6) {
                                      return 45;
                                  } else {
                                      return 41;
                                  }
                              } else {
                                  if (t6) {
                                      return 37;
                                  } else {
                                      return 33;
                                  }
                              }
                          }
                      }
                  }
      
              } else {//t1
                  if (t2) {
                      if (t3) {
                          if (t4) {
                              if (t5) {
                                  if (t6) {
                                      return 32;
                                  } else {
                                      return 28;
                                  }
                              } else {
                                  if (t6) {
                                      return 24;
                                  } else {
                                      return 20;
                                  }
                              }
                          } else {
                              if (t5) {
                                  if (t6) {
                                      return 16;
                                  } else {
                                      return 12;
                                  }
                              } else {
                                  if (t6) {
                                      return 8;
                                  } else {
                                      return 4;
                                  }
                              }
                          }
                      } else {
                          if (t4) {
                              if (t5) {
                                  if (t6) {
                                      return 30;
                                  } else {
                                      return 26;
                                  }
                              } else {
                                  if (t6) {
                                      return 22;
                                  } else {
                                      return 18;
                                  }
                              }
                          } else {
                              if (t5) {
                                  if (t6) {
                                      return 14;
                                  } else {
                                      return 10;
                                  }
                              } else {
                                  if (t6) {
                                      return 6;
                                  } else {
                                      return 2;
                                  }
                              }
                          }
                      }
                  } else {
                      if (t3) {
                          if (t4) {
                              if (t5) {
                                  if (t6) {
                                      return 31;
                                  } else {
                                      return 27;
                                  }
                              } else {
                                  if (t6) {
                                      return 23;
                                  } else {
                                      return 19;
                                  }
                              }
                          } else {
                              if (t5) {
                                  if (t6) {
                                      return 15;
                                  } else {
                                      return 11;
                                  }
                              } else {
                                  if (t6) {
                                      return 7;
                                  } else {
                                      return 3;
                                  }
                              }
                          }
                      } else {
                          if (t4) {
                              if (t5) {
                                  if (t6) {
                                      return 29;
                                  } else {
                                      return 25;
                                  }
                              } else {
                                  if (t6) {
                                      return 21;
                                  } else {
                                      return 17;
                                  }
                              }
                          } else {
                              if (t5) {
                                  if (t6) {
                                      return 13;
                                  } else {
                                      return 9;
                                  }
                              } else {
                                  if (t6) {
                                      return 5;
                                  } else {
                                      return 1;
                                  }
                              }
                          }
                      }
                  }
              }
          }
      相關(guān)代碼

       

      posted on 2021-01-03 09:24  黑獄  閱讀(226)  評(píng)論(1)    收藏  舉報(bào)

      主站蜘蛛池模板: 国产成人精彩在线视频| 亚洲精品国产字幕久久麻豆| 久久精品av国产一区二区| 国产高潮刺激叫喊视频| 左权县| 精品国精品国产自在久国产应用男| 四虎永久精品免费视频| 麻豆妓女爽爽一区二区三| 日韩精品无码免费专区午夜不卡 | 国产美女高潮流白浆视频| 无码任你躁久久久久久老妇| 欧美牲交a欧美牲交aⅴ免费| 欧美和黑人xxxx猛交视频| 欧美成人免费一区二区三区视频| 亚洲午夜激情久久加勒比| 日本乱一区二区三区在线| 国内精品久久久久影院日本| 国产在线国偷精品产拍| 精品国产精品中文字幕| WWW丫丫国产成人精品| 国产黄色一区二区三区四区| 国产乱码精品一区二区三上| 欧美精品国产综合久久| 综合久久婷婷综合久久| 亚洲区中文字幕日韩精品| 亚洲成av人片色午夜乱码| 国产影片AV级毛片特别刺激 | 亚洲国产精品第一二三区| 成年无码av片在线蜜芽| 玩两个丰满老熟女久久网 | 一本本月无码-| 中文字幕日韩精品国产| 亚洲开心婷婷中文字幕| 在线观看AV永久免费| 中国熟女仑乱hd| 精品精品亚洲高清a毛片| 日本真人添下面视频免费| 日韩中文字幕人妻精品| 精品视频一区二区福利午夜| 亚洲第一无码专区天堂 | 国产成人高清精品免费软件|