在经过一番探索后,设计如下
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; }
截止2019年11月13日.
辞职5个月
完成界限计划.
感觉才完成了30%的开发进度,还有一大半时间浪费到其他上面(办理保险,得病,在家赖床等等)
大概完成了地图编辑器
完成了基础战斗,作战
完成了大战役大地图展示
....
但还有大量的工作没有做完
兵模等素材的绘制更换
征服自由模式
战斗特效的优化
加油吧....
....已经研究了一年的libgdx.但是仍然觉得libgdx是个坑.有机会换unity吧...