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

发布时间:2024年01月07日

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

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

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

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

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

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

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

??上面这2个视频是从B站看到的,前者是C++调用EasyX实现。后者是C语言直接调用Windows图形API实现。
在这里插入图片描述在这里插入图片描述

4.剩余项目计划

目前为止已实现地图,玩家坦克在地图中行走。初步打算完成第4步后发布第一个版本。
下一步,
1. 玩家发射炮弹
2. 炮弹命中地图瓦片的爆炸效果、逻辑处理
3. 敌军坦克诞生、行走、发射炮弹
4. 双方炮弹碰撞抵消,被炮弹击中爆炸效果、逻辑实现
5. 游戏game over逻辑处理
6. 玩家消灭坦克或吃道具的分数计算
7. 道具对玩家坦克外观和炮弹火力影响
8. 道具的出现位置和动画逻辑
9. 关卡地图的实现
10. 过关的处理
11. …还有很多

5.思考

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

在这里插入图片描述

感悟

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

文章来源:https://blog.csdn.net/ximen250/article/details/134677144
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。