Java Swing手搓坦克大战遇到的问题和思考

1.游戏中的坐标系颇为复杂

像素坐标系还有行列坐标,都要使用,这之间的互相转化使用也要注意

2.游戏中坦克拐弯的处理,非常重要

由于坦克中心点是要严格对齐到一条网格线,并沿着这条线前进的,如果拐弯不做处理,很可能坦克就不再对齐到网格线了。这将影响炮弹的发射和消除瓦片地图的功能实现。

3.关于坦克前进的步进问题

  看到一个NB闪闪的坦克大战游戏制作视频,在视频中作者的坦克前进也是一格一格的,这样其实体验是非常糟糕的,卡顿感,非常明显,可是作者的思路是利用补间动画解决了这个问题,我惊呆了。值的观摩和学习。目前是较小固定像素个数不断前进。

  之前看过一个视频也是讲这个问题的,作者却没说这个问题,很迷惑,因为自己实现了以后发现,问题很严重。走一步,跨一格,卡的不能看。

  上面这2个视频是从B站看到的,前者是C++调用EasyX实现。后者是C语言直接调用Windows图形API实现。
Java Swing手搓坦克大战遇到的问题和思考_第1张图片Java Swing手搓坦克大战遇到的问题和思考_第2张图片

4.游戏效果视频

这个视频就是目前的最终效果

业余手搓坦克大战游戏

5.剩余项目计划

目前为止已实现地图,玩家坦克在地图中行走。初步打算完成第5步后发布第一个版本,已经完成。
下一步,

  • 1.玩家发射炮弹
  • 2. 炮弹命中地图瓦片的爆炸效果、逻辑处理
  • 3. 敌军坦克诞生、行走、发射炮弹
  • 4. 双方炮弹碰撞抵消,被炮弹击中爆炸效果、逻辑实现
  • 5. 游戏game over逻辑处理
  • 6. 玩家消灭坦克或吃道具的分数计算
  • 7. 道具对玩家坦克外观和炮弹火力影响
  • 8. 道具的出现位置和动画逻辑
  • 9. 关卡地图的实现
  • 10. 过关的处理
  • 11.严重bug的修复
  • 12. …还有很多

6.思考

  1. 2个运动的物体如何判断碰撞更高效
  2. 敌军坦克寻找基地和玩家坦克,是不是涉及到寻路算法(A*…)
  3. 物理系统如何应用到游戏中
  4. 2022、2023至今AI已经如此成熟,写代码也是轻车熟路,我还在用古老的技术尝试开发2D游戏,真的有必要吗?意义大吗?
  5. …还有一些

Java Swing手搓坦克大战遇到的问题和思考_第3张图片

7.感悟

刚开始觉得坦克大战还是很容易的,没想到后续做起来还是挺复杂的工程。

你可能感兴趣的:(java,游戏)