1.游戏中的坐标系颇为复杂
像素坐标系还有行列坐标,都要使用,这之间的互相转化使用也要注意
2.游戏中坦克拐弯的处理,非常重要
由于坦克中心点是要严格对齐到一条网格线,并沿着这条线前进的,如果拐弯不做处理,很可能坦克就不再对齐到网格线了。这将影响炮弹的发射和消除瓦片地图的功能实现。
3.关于坦克前进的步进问题
看到一个NB闪闪的坦克大战游戏制作视频,在视频中作者的坦克前进也是一格一格的,这样其实体验是非常糟糕的,卡顿感,非常明显,可是作者的思路是利用补间动画解决了这个问题,我惊呆了。值的观摩和学习。目前是较小固定像素个数不断前进。
之前看过一个视频也是讲这个问题的,作者却没说这个问题,很迷惑,因为自己实现了以后发现,问题很严重。走一步,跨一格,卡的不能看。
上面这2个视频是从B站看到的,前者是C++调用EasyX实现。后者是C语言直接调用Windows图形API实现。
4.游戏效果视频
这个视频就是目前的最终效果
业余手搓坦克大战游戏
5.剩余项目计划
目前为止已实现地图,玩家坦克在地图中行走。初步打算完成第5步后发布第一个版本,已经完成。
下一步,
- 1.玩家发射炮弹
- 2. 炮弹命中地图瓦片的爆炸效果、逻辑处理
- 3. 敌军坦克诞生、行走、发射炮弹
- 4. 双方炮弹碰撞抵消,被炮弹击中爆炸效果、逻辑实现
- 5. 游戏game over逻辑处理
- 6. 玩家消灭坦克或吃道具的分数计算
- 7. 道具对玩家坦克外观和炮弹火力影响
- 8. 道具的出现位置和动画逻辑
- 9. 关卡地图的实现
- 10. 过关的处理
- 11.严重bug的修复
- 12. …还有很多
6.思考
- 2个运动的物体如何判断碰撞更高效
- 敌军坦克寻找基地和玩家坦克,是不是涉及到寻路算法(A*…)
- 物理系统如何应用到游戏中
- 2022、2023至今AI已经如此成熟,写代码也是轻车熟路,我还在用古老的技术尝试开发2D游戏,真的有必要吗?意义大吗?
- …还有一些
7.感悟
刚开始觉得坦克大战还是很容易的,没想到后续做起来还是挺复杂的工程。