文明6吧 关注:514,575贴子:4,620,636

自制“马蜂窝”

取消只看楼主收藏回复

龟速更新,黄皓镇楼,随时TJ


IP属地:上海1楼2018-01-29 21:42回复
    纠结了很久,是否要发这帖,因为很容易TJ
    但是想到发帖了,怕人说TJ了,也许就不TJ了,或者晚点TJ了,也是一件好事
    同样纠结了很久,到底是在311吧发帖还是civ6发帖
    最后还是决定在civ6里发,因为是自制的“马蜂窝”,和311的还是有点区别……
    好了,楼主要去洗澡了,洗完回来继续~


    IP属地:上海2楼2018-01-29 21:47
    回复
      2025-08-11 16:39:49
      广告
      不感兴趣
      开通SVIP免广告
      解释下所谓的“马蜂窝”,最近楼主沉迷civ6无法自拔(其实是因为要带娃,没法玩即时的游戏……)
      因为楼主电脑配置太低,只能切战略视图,打打标准大小地图
      老婆大人看到屏幕后来了一句,你玩的这是什么?马蜂窝么?
      仔细看这六边形的地图,还真像马蜂窝……


      IP属地:上海3楼2018-01-29 22:06
      回复
        因为楼主只是一个底层的码农,收入实在少的可怜
        虽然也想换台高配的台式,和吧里的大神们一样随便开巨大图,或者买个ipad在ios上玩civ
        但一想到娃还要奶粉钱,所以只好咬咬牙,继续耍自己的安卓不足千元机……


        IP属地:上海5楼2018-01-29 22:11
        收起回复
          好了,言归正传,既然我们要制作一个马蜂窝,那么就要从第一个六边形开始
          在楼主看来,六边形应该是这样的~

          感谢伟大的画图工具,第一个六边形完成了~
          现在让我们来复习中学的几何课程
          假设屏幕的左上角是(0,0),六边形的边长是R,那么我们应该如何描述这个六边形呢?


          IP属地:上海6楼2018-01-29 22:15
          回复
            在楼主看来,应该是这样的

            作为一名灵魂画师,我只能做到这样的程度了~


            IP属地:上海7楼2018-01-29 22:18
            回复
              好了,我们已经可以很好的定位一个六边形了,姑且称他为格子
              我们可以定义一个对象来描述这个格子
              在我看来应该是这样的
              this.setPane = function(x, y, r) {
              this.sx = x;
              this.sy = y;
              this.r = r;
              this.px = [x, x + r, x + r, x, x - r, x - r];
              this.py = [y - r, y - r / 2, y + r / 2, y + r, y + r / 2, y - r / 2];
              }
              不懂代码的朋友估计已经懵逼了,其实如果不写注释,我自己看了也会懵~
              简而言之,一个格子有一个中心点坐标(x, y)
              他有六个顶点,假设边长为r,那么6个点的坐标就是(x, y-r) (x+r, y-r/2) (x+r, y+r/2) (x, y+r) (x-r, y+r/2) (x-r, y-r/2)


              IP属地:上海8楼2018-01-29 22:25
              回复
                六个顶点都有了,顺序把他们用线连接起来,六边形就完成了
                (此处楼主就直接用H5的canvas绘图完成)

                恩,没错。背景应该是黑色的~


                IP属地:上海9楼2018-01-29 22:32
                回复
                  2025-08-11 16:33:49
                  广告
                  不感兴趣
                  开通SVIP免广告
                  接下来就是计算机最擅长的事情了,重复同样的工作
                  用for循环写一排六边形

                  然后再套一层for循环,画N排六边形(注意偶数行的六边形要错开,具体坐标就不写了)

                  很好,我们的马蜂窝已经出具规模了~


                  IP属地:上海10楼2018-01-29 22:36
                  收起回复
                    喝杯茶,想想之后应该做什么呢?这黑漆漆的马蜂窝,是要拿来做宇宙的背景么?
                    我们的地球应该是蓝色(海水)绿色(草原)黄色(沙漠)白色(冻土)吧
                    冷酷的现实告诉楼主,你只是一个码农,别去想美工应该想的事情……


                    IP属地:上海12楼2018-01-29 22:44
                    回复
                      管他呢,既然我们已经想到构造地图需要地形,那么就把地形这个对象造出先
                      就像一开始我们定义了格子一样
                      function Terrain() {
                      this.setTerrain = function(id, name, cost, f, p, m) {
                      this.id = id;
                      this.name = name;
                      this.cost = cost;
                      this.output = [f, p, m];
                      }
                      }
                      地形应该有个id(恩,我认为需要一个id),还需要一个名字name,不同的地形消耗的机动力不同cost,不同的地形应该还有粮食food,产能product,金钱money,把这些放到一个叫产出output的队列里去


                      IP属地:上海13楼2018-01-29 22:55
                      回复
                        按照civ的分类,地块分为地形(草原,平原,黄山,绿山,沙漠……)和地貌(森林,沼泽,冲击……)
                        我们暂时先不搞那么复杂,就先弄一个单一的地形好了,之后再考虑是否要改
                        一开始做的太复杂,反而会弄的很累,还觉得毫无进展

                        靠,沼泽英文怎么说?待我百度一下……swap。好吧,我又学到了新单词~楼主的E文老师应该很欣慰,其他地形楼主都还记得怎么写


                        IP属地:上海15楼2018-01-29 23:05
                        收起回复
                          好了,已经11点了,为了明天的工作,楼主也应该休息了。
                          作为一个色盲,用纯色来表示地形,也不是一个很好的办法。
                          去网上搜点图片资源好了,明天把以前用来做游戏的rpgmaker的素材翻出来,看下有没有合适的
                          不过应该没有六边形战棋素材
                          不想那么多了,各位吧友,晚安~
                          继续还是TJ,这是一个问题


                          IP属地:上海16楼2018-01-29 23:12
                          回复
                            听说百度吞楼很严重,只要发链接就秒删,那我发百度百科的链接呢?
                            https://baike.baidu.com/item/rpgmaker/5867271?fr=aladdin
                            rpgmaker还是不错的一款工具,对于不会写代码的朋友,可以使用他编写简单的rpg游戏
                            当然,我现在只想用点图片素材而已~


                            IP属地:上海19楼2018-01-30 10:07
                            回复
                              2025-08-11 16:27:49
                              广告
                              不感兴趣
                              开通SVIP免广告
                              额,带url的帖子果然被度娘吞了。连百度百科都不放过……


                              IP属地:上海20楼2018-01-30 11:12
                              回复