找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 689|回复: 5

【VB6】一个“坦克大战”游戏的简单实现

[复制链接]
发表于 2023-8-27 20:21:22 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

×
【简介】
坦克大战是一款经典的射击类游戏,支持单人或双人模式。
单人模式是电脑控制1到N个坦克和你对打,双人模式是你和你的玩伴各控制一个坦克对打。

【特色】
1、坦克除了支持上下左右移动射击,还支持4个斜向方位的移动和射击(左上↖、左下↙、右上↗、右下↘)。
2、坦克除了有炮,还有机枪,还可以呼叫飞机轰炸敌方坦克(包括精确轰炸和地毯式轰炸)。
3、支持地图编辑(有土墙、钢墙、河流、地雷四种元素)。

【缺点】
1、画面很粗糙(大概是80年代游戏机的水平,因为我实在没有“一身的艺术细菌”,完全不懂美工)。
2、没有AI,电脑控制的坦克看起来不太聪明(但是火力依然很猛,尤其是在一对多的情况下,如果不呼叫轰炸机,人类玩家不占优势)。
3、由于VB默认不支持多线程,所以当地图上的元素较多时,会导致游戏很卡(编译后支持“多线程模式”,但因为这个游戏是很久之前写的,没有使用基于ActiveX-EXE的多线程技术,所以导致稳定性较差)。

【截图】
地图编辑器: 1.png
对战中(己方坦克寡不敌众,于是叫来飞机进行地毯式轰炸): 2.png

【下载】
游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

发表于 2023-8-28 09:14:17 | 显示全部楼层

谢谢楼主提供
回复 赞! 靠!

使用道具 举报

发表于 2023-8-28 09:15:22 | 显示全部楼层
祝楼主考试顺利~
回复 赞! 靠!

使用道具 举报

发表于 2023-8-29 20:11:33 | 显示全部楼层
游戏不管用不用多线程都需要解决一个场景中东西很多的时候怎样做才不会卡的问题。

回复 赞! 靠!

使用道具 举报

发表于 2023-9-9 18:17:09 | 显示全部楼层
本帖最后由 lichao 于 2023-9-9 18:22 编辑

     不知道你是不是用窗口控件去实现的一个个坦克/路障啥的,这种游戏如果用“窗口控件”的方式去做,元素多了一定会卡,因为窗口本来就比较费资源。而常规做法是“画”上去,直接“画”上去效率会高得多,Win上gdi就是这种类型的开发模式。(老早以前我做这种东西也是拿控件去做,比如做一个永远点不到的按钮,鼠标到了就跑)。Javascript也是,绘图部分不用控件去做的,而直接是用canvas或者其他绘图库。
     直接“画”的话,和每个假“控件”的交互就得自己做坐标判断,还要自己负责重绘,比如MFC里的onpaint。要想少点繁琐的操作可以用流行的游戏引擎如c++的cocos2dx,这种开发方式就是用引擎帮你播放各种动画(说白了游戏里大部分逻辑都可以认为是动画),平移/旋转/补间,也不用自己重绘了,引擎控制每一帧该放什么。再高级的个人觉的就是如python-panda3d这种的,这种开发出来可以编译到Win/Linux/Mac上,且界面也很精美,官网有大量例子,不多的代码即可开发一个类似于雷电的游戏出来
回复 赞! 靠!

使用道具 举报

发表于 2023-9-9 20:02:39 | 显示全部楼层
楼主试试用C做个控制台界面的坦克大战。控件遮挡了很多游戏该有的内部实现(比如地图上障碍物的表示,vb可以直接堆控件,C要考虑地图上障碍物实例的位置类型绘图等等)
而且C的可移植性更好。写好坦克大战后可以移植到不同系统和其他平台。vb只能运行在windows上。
回复 赞! 靠!

使用道具 举报

本版积分规则

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-6-24 11:14 , Processed in 0.034112 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表