使用PYGAME开发的坦克游戏[代码][思路]
坦克游戏设计思路
近期通过pygame设计了个坦克游戏,熟悉了下2D游戏的开发,总结一下吧,否则又忘记了。
游戏类似小时候红白机上的坦克大战,有几种坦克类型,主要区别在于:
攻击力
移动速度
四个方向的贴图(png)
发炮的声音
移动的声音
血量
因为比较喜欢玩手机,所以里面坦克的名字都是以用过的手机名命名的:
E71
N95
HD2
i780
touch
8900
.....
:-) 有点雷人
地图的设计:
666666666666666666666666666
600000000000000000000000006
600000000000000000000000006
600000300001000000000000006
600000300001000001345000006
600000322221000001000100006
600000311111000001222100006
600000300001000001000100006
600000300001000001111000006
644444444444444444444444006
600000000000000000000000006
600000111110000011111000006
600000100000000000200000006
600000111110000000200000006
600000000010000000200000006
600000000010000000200000006
600000111110000011211000006
600000000000000000000000006
600000000000000000000000006
666666666666666666666666666
这就是一张地图,看明白没?
0-6代表7种不一样的元素:
土
铁
树
水
冰
空白
城墙
每种都有不一样的贴图,读取地图文件时算好坐标对着贴就是了
而每关不一样的坦克信息,玩家控制的坦克,敌方控制的坦克,都是写在地图的配置文件里的:
{
"background" : null,
"backcolor" : [0,0,0],
"tank_info" :
{
"normal":1,
"hard":1
},
"player" : "e90",
"slash" : ["6.jpg","7.jpg"],
"sound" : "Mozart_Piano_Sonata_Amin3.ogg",
"mapfile":"map",
"size":[815,700]
}
配置文件是json格式,python 加载json格式非常简单,而且定义清晰明了
然后每关都压缩成个zip文件,加载时进行读取。
坦克的移动和碰撞检测直接用pygame中的sprite对象来做就可以了,都封装在里面了,看看文档就会用,我就不细说了。
开头动画就是简单的图片切换,加上渐变效果。
整个坦克游戏开发从三月中旬一直到四月中旬,从接触pygame到写完这个游戏,也都是在这个时间段,弄明白2D游戏大概是如何开发的了。坦克重做了三回,终于成形了,也不打算改了,再改估计又想重新做了。
猜猜用了多少行。。
在linux下用wc统计,抛去注释的代码,1600多行
python 强大有木有
pygame 给力有木有
先贴几张截图,再传下代码
总体来说,写的比较灵活,可配置性比较强,地图坦克什么的都可以自己改
windows下请放在英文路径下运行,没处理中文路径的问题,这个有空再改吧(估计。。。。改不了了)哪位朋友有空改好也可以发我份哦~


近期通过pygame设计了个坦克游戏,熟悉了下2D游戏的开发,总结一下吧,否则又忘记了。
游戏类似小时候红白机上的坦克大战,有几种坦克类型,主要区别在于:
攻击力
移动速度
四个方向的贴图(png)
发炮的声音
移动的声音
血量
因为比较喜欢玩手机,所以里面坦克的名字都是以用过的手机名命名的:
E71
N95
HD2
i780
touch
8900
.....
:-) 有点雷人
地图的设计:
666666666666666666666666666
600000000000000000000000006
600000000000000000000000006
600000300001000000000000006
600000300001000001345000006
600000322221000001000100006
600000311111000001222100006
600000300001000001000100006
600000300001000001111000006
644444444444444444444444006
600000000000000000000000006
600000111110000011111000006
600000100000000000200000006
600000111110000000200000006
600000000010000000200000006
600000000010000000200000006
600000111110000011211000006
600000000000000000000000006
600000000000000000000000006
666666666666666666666666666
这就是一张地图,看明白没?
0-6代表7种不一样的元素:
土
铁
树
水
冰
空白
城墙
每种都有不一样的贴图,读取地图文件时算好坐标对着贴就是了
而每关不一样的坦克信息,玩家控制的坦克,敌方控制的坦克,都是写在地图的配置文件里的:
{
"background" : null,
"backcolor" : [0,0,0],
"tank_info" :
{
"normal":1,
"hard":1
},
"player" : "e90",
"slash" : ["6.jpg","7.jpg"],
"sound" : "Mozart_Piano_Sonata_Amin3.ogg",
"mapfile":"map",
"size":[815,700]
}
配置文件是json格式,python 加载json格式非常简单,而且定义清晰明了
然后每关都压缩成个zip文件,加载时进行读取。
坦克的移动和碰撞检测直接用pygame中的sprite对象来做就可以了,都封装在里面了,看看文档就会用,我就不细说了。
开头动画就是简单的图片切换,加上渐变效果。
整个坦克游戏开发从三月中旬一直到四月中旬,从接触pygame到写完这个游戏,也都是在这个时间段,弄明白2D游戏大概是如何开发的了。坦克重做了三回,终于成形了,也不打算改了,再改估计又想重新做了。
猜猜用了多少行。。
在linux下用wc统计,抛去注释的代码,1600多行
python 强大有木有
pygame 给力有木有
先贴几张截图,再传下代码
总体来说,写的比较灵活,可配置性比较强,地图坦克什么的都可以自己改
windows下请放在英文路径下运行,没处理中文路径的问题,这个有空再改吧(估计。。。。改不了了)哪位朋友有空改好也可以发我份哦~


...全文
相关推荐
Python Pygame坦克大战[可运行源码]
本文详细介绍了使用Python Pygame开发坦克大战游戏的完整代码和实现逻辑。游戏包含四大核心模块:坦克类(处理移动、转向、射击和受击逻辑)、子弹碰撞检测(处理出界删除、撞墙消失、击中坦克掉血)、敌方AI行为(实现自动移动和随机射击)以及游戏状态管理(处理游戏结束和重启功能)。文章通过代码片段和详细说明,展示了如何实现网格移动、射击功能、碰撞检测等关键功能,并提供了完整的游戏代码。该游戏设计思路清晰,代码结构合理,适合作为2D游戏开发的参考案例。
坦克射击游戏基于pygame模块
使用python三方库的pygame,sys,random,time,logging,os,json,datetime这些模块实现飞机大战的翻版
Python项目开发实战:坦克大战游戏(案例教程实例课程).pdf
Python项目开发实战:坦克大战游戏(案例教程实例课程).pdf
python实现简单坦克大战
主要为大家详细介绍了python实现简单坦克大战,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
python程序 游戏源码 坦克大战
python程序 游戏源码 坦克大战



