在经过一番探索后,设计如下

hexagon类,原来管理坐标

legion类用来记录各军团资源,科技等数据

通过 pool对象池创建 actor

buildActor,armyActor,负责各自的动画,以及记录一些变量

mapActor负责绘制地图,绘制背景色以及监视玩家点击

cardActor等一些作为辅助展示功能

所有计算都汇总在gameStage中

把回合分为 准备阶段,战斗阶段

开局根据战斗核心点设立战斗目标

准备阶段: 玩家点击建筑,如果建筑有兵,则展示相应的可以给该兵种装备的战术卡牌,否则展示单位卡牌

玩家点击兵种设置/显示 进攻目标

点击结束按钮或时间到由ai建造兵种,然后进入自动战斗阶段

直到到达指定回合或实现战斗目标;

其中难点有:

自动寻路(在家折腾了大半个月..)

边界展示(至今未攻克.libgdx画一些特效实在太难实现了,如下图,画曲线边界,最后决定采用一些折中方案)

另外在游戏中发现一些问题:

在研究边界问题中发现,因为暂时采用的是e社的边界素材

海陆即通过判断周围6个边的海陆属性来显示

但是这就需要判断6次,然后就有60多种的情况需要考虑,而e社的素材id顺序似乎没有什么规律,

一个简单的方法是通过二进制来判断,并将相关的排序

例如:全海洋:000000 转为10进制即0

0000001,代表该坐标右下是陆地,其他方向均为海洋,id为1

特别写了个转化方法,将来有机会全转了..

private int easyTechBorderTransFCode(int borderCode){
        switch(borderCode){
            case -1:return 0; //000000 即为完整海
            case 60:return 1; //000001 即右下角为陆
            case 56:return 2; //000010 即下面为陆
            case 52:return 3; //000011
            case 48:return 4; //000100
            case 44:return 5; //000101
            case 40:return 6; //000110
            case 36:return 7; //000111
            case 62:return 8; //001000
            case 58:return 9; //001001
            case 54:return 10; //001010
            case 50:return 11; //001011
            case 46:return 12; //001100
            case 42:return 13; //001101
            case 38:return 14; //001110
            case 34:return 15; //001111
            case 63:return 16; //010000
            case 59:return 17; //010001
            case 55:return 18; //010010
            case 51:return 19; //010011
            case 47:return 20; //010100
            case 43:return 21; //010101
            case 39:return 22; //010110
            case 35:return 23; //010111
            case 61:return 24; //011000
            case 57:return 25; //011001
            case 53:return 26; //011010
            case 49:return 27; //011011
            case 45:return 28; //011100
            case 41:return 29; //011101
            case 37:return 30; //011110
            case 33:return 31; //011111
            case 32:return 32; //100000
            case 28:return 33; //100001
            case 24:return 34; //100010
            case 20:return 35; //100011
            case 16:return 36; //100100
            case 12:return 37; //100101
            case 8:return 38; //100110
            case 4:return 39; //100111
            case 30:return 40; //101000
            case 26:return 41; //101001
            case 22:return 42; //101010
            case 18:return 43; //101011
            case 14:return 44; //101100
            case 10:return 45; //101101
            case 6:return 46; //101110
            case 2:return 47; //101111
            case 31:return 48; //110000
            case 27:return 49; //110001
            case 23:return 50; //110010
            case 19:return 51; //110011
            case 15:return 52; //110100
            case 11:return 53; //110101
            case 7:return 54; //110110
            case 3:return 55; //110111
            case 29:return 56; //111000
            case 25:return 57; //111001
            case 21:return 58; //111010
            case 17:return 59; //111011
            case 13:return 60; //111100
            case 9:return 61; //111101
            case 5:return 62; //111110
            case 1:return 63; //111111

        }
        return 0;
    }
View Code

截止2019年11月13日.

辞职5个月

完成界限计划.

感觉才完成了30%的开发进度,还有一大半时间浪费到其他上面(办理保险,得病,在家赖床等等)

大概完成了地图编辑器

完成了基础战斗,作战

完成了大战役大地图展示

....

但还有大量的工作没有做完

兵模等素材的绘制更换

征服自由模式

战斗特效的优化

加油吧....

....已经研究了一年的libgdx.但是仍然觉得libgdx是个坑.有机会换unity吧...

01-02 07:15