⭐️前言⭐️
该项目为博主与几位伙伴的共同成果,历时1个月,由最初知识尚未掌握,到最后开发出完整项目,一途走过不少弯路,但也对个人的编程能力及对java知识的掌握更进一步,游戏逻辑主要参考【马士兵网络版坦克大战】
项目源码、说明文档及开发所用到的工具均在【gitee仓库】,请自行获取,文件名为FinalResults。
博客主页: 【如风暖阳】
精品Java专栏【JavaSE】、【Java数据结构】、【备战蓝桥】、【JavaEE初阶】
欢迎点赞 收藏 ⭐留言评论 私信必回哟本文由 【如风暖阳】 原创,首发于 CSDN
博主将持续更新学习记录收获,友友们有任何问题可以在评论区留言
博客中涉及源码及博主日常练习代码均已上传码云(gitee)
⚡️操作流程及效果预览⚡️
该游戏涵盖多线程、IO、网络编程、JDBC知识,实现多人联机版坦克大战。
编码方式:GBK
MySQL jar包版本:mysql-connector-java-8.0.28(已上传至gitee)
jdk版本:1.8
需要先在本地的建立MySQL数据库bjpowernode
,建表create table userlist(username varchar(255),password int);
,可以在表中存储用户名和密码,也可以不存储。
在Main包下启动TankServer端,然后在login包下启动LoginServer,最后启动LogOnFrm出现登录界面,如果数据库中已经存有的用户名和密码,直接登录即可,若不存在,点击两下完成注册,登录成功以后会跳转到游戏界面,按下c键完成IP号和端口号的设置,通过连接同一IP的方式完成多人联机。
在游戏中wasd控制坦克的移动,空格键完成射击。
在该包下为坦克大战游戏物体的主要实现,NetClint端为网络联机客户端的实现
运行该项目在该包下操作即可,先启动server端再启动client端,此处的TankClient具体的网络联机在Game包下的NetClient类中实现
该包用以实现网络版的信息传输,不同的信息都实现Msg接口,在Msg接口中的send和parse抽象方法,在各自的类中重写send和parse方法(当信息传输过来时在对应的类中完成发包和拆包的具体实现),这样使得这两个方法很好的包装,在client端和server端传输信息时通过多态实现不同类别信息的传输。
通过连接JDBC实现用户登录界面,完成与数据库的交互,实现登录跳转
⚡️最后的话⚡️
总结不易,希望uu们不要吝啬你们的哟(^U^)ノ~YO!!如有问题,欢迎评论区批评指正